반응형
문제풀이
1. 각 id별 최종 닉네임을 찾는다.
2. record를 적절한 메시지를 출력한다.
Python Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
def solution(record):
answer = []
# d['id'] = nickname
d = dict()
tmp = []
for r in record:
s = r.split()
if s[0]=='Enter':
d[s[1]]=s[2]
tmp.append(s[:2])
elif s[0]=='Leave':
tmp.append(s[:2])
else :
d[s[1]]=s[2]
#print(tmp)
for t in tmp:
answer.append(d[t[1]]+'님이 들어왔습니다.' if t[0]=='Enter'
else d[t[1]]+'님이 나갔습니다.')
return answer
|
cs |
Line 5 : 나중에 출력할 것을 위해서 Enter와 Leave로 시작되는 레코드만을 담아둡니다.
Line 6~14 : dictionary를 활용하여 각 id별 최종 닉네임을 구합니다.
Line 16~18 : Line 5에 담긴 레코드를 적절한 메시지로 변경합니다.
시간복잡도는 record에 대해 for문이 2번 돌아가므로 O(n)이 됩니다(정확히는 O(2n)).
문제링크
코딩테스트 연습 - 오픈채팅방
오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오
programmers.co.kr
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 실패율 Python (0) | 2021.08.22 |
---|---|
[프로그래머스] 위클리 챌린지 2주차 python (0) | 2021.08.21 |
[프로그래머스 ] 예산 Python (0) | 2021.04.29 |
[프로그래머스] 신규 아이디 추천 - Python (0) | 2021.04.03 |
[프로그래머스] 3진법 뒤집기 - Python (0) | 2021.02.08 |