알고리즘/프로그래머스
[프로그래머스] 오픈채팅방 Python
무명 씨
2021. 7. 2. 17:39
반응형
문제풀이
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
반응형