Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 2중포문
- 그리디알고리즘
- 덩치
- 최단거리
- 스택
- 404에러
- 코테
- 퇴각검색
- 파이썬
- 다익스트라
- Backtracking
- 소트
- 프로그래머스
- 최빈값
- 스프링프레임워크
- 스프링
- 월간 코드 챌린지 시즌2
- 백트래킹
- 통계학
- 브루트포스
- 소트인사이드
- 동적
- DFS
- 동적계획법
- 백준
- 코딩테스트
- 그리디
- 정렬
- Python
- sort
Archives
- Today
- Total
취준생의 코딩테스트 연습기
[프로그래머스] 오픈채팅방 / 파이썬(python) 본문
# 문제 링크
programmers.co.kr/learn/courses/30/lessons/42888
# Soultion
처음에 15줄에서 2중 for문을 사용했더니 시간초과 문제가 발생하여 1중 for문으로 변경해주었다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
def solution(record):
answer = []
user = {}
for i in record:
rec = list(map(str,i.split()))
if rec[0]=='Enter':
user[rec[1]] = rec[2] #id, nickname
answer.append([rec[1],'님이 들어왔습니다.'])
elif rec[0]=='Leave':
answer.append([rec[1],'님이 나갔습니다.'])
else: #change
user[rec[1]] = rec[2]
ch_answer = []
for s in answer:
ch_answer.append(user[s[0]]+s[1])
return ch_answer
|
cs |
2. id와 입출입여부를 저장할 리스트
3. 채팅방에 들어온 id와 nickname을 저장할 map
6. 입력이 Enter이면, 들어온 id와 닉네임을 저장한다.
11. 닉네임을 변경했으면, user에 저장되어있는 id를 이용하여 새로운 nickname으로 저장
14. 최종적으로 출력할 정답
15. user에 저장되어있는 정보를 이용하여 id를 nickname으로 변경
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 직사각형 별찍기 / 파이썬(python) (0) | 2021.05.21 |
---|---|
[프로그래머스] 휴대폰 번호 가리기 / 파이썬(python) (0) | 2021.05.21 |
[프로그래머스] 음양 더하기 / 파이썬(python) (0) | 2021.05.01 |
[프로그래머스] 괄호 회전하기 / 파이썬(python) (0) | 2021.04.19 |
[프로그래머스] 가장 큰 수 / 파이썬(python) (0) | 2021.04.02 |
Comments