320x100
https://school.programmers.co.kr/learn/courses/30/lessons/42888
채팅 로그를 저장하는 리스트 chat와 가장 최신화된 uid - 닉네임을 저장하는 딕셔너리 nickname을 이용했다.
chat[0]에는 들어오거나 나가는 로그를 저장하고, chat[1]은 uid를 저장한다. 그리고 Enter, Change일 때 딕셔너리에서 uid에 해당하는 닉네임을 최신화하면 된다.
from collections import defaultdict
def solution(record):
# 어떤 uid가 들어왔는지 / 나갔는지를 기록하고, 최종 uid의 닉네임이 뭔지만 잘 알면 된다.
answer = []
chat = []
nickname = defaultdict()
for rec in record:
data = rec.split()
if data[0] == 'Enter':
chat.append(['들어왔습니다',data[1]]) # 0 : Enter
nickname[data[1]] = data[2] # data[1] = uid(key), data[2] = nickname(val)
elif data[0] == 'Leave':
chat.append(['나갔습니다',data[1]]) # 1 : Leave
else : # Change
nickname[data[1]] = data[2]
for i in range(len(chat)):
answer.append("{nick}님이 {state}.".format(nick = nickname[chat[i][1]], state = chat[i][0]))
return answer
'코딩테스트' 카테고리의 다른 글
[파이썬] 뉴스 클러스터링 - 2018 KAKAO BLIND RECRUITMENT [CODING TEST #17] (0) | 2022.07.25 |
---|---|
[파이썬] 짝지어 제거하기 - 2017 팁스타운 [CODING TEST #16] (0) | 2022.07.25 |
[파이썬] 괄호 변환 - 2020 KAKAO BLIND RECRUITMENT [CODING TEST #14] (0) | 2022.07.23 |
[파이썬] 폰켓몬 [CODING TEST #13] (0) | 2022.07.21 |
[파이썬] 음양 더하기 - 월간 코드 챌린지 시즌2 [CODING TEST #12] (0) | 2022.07.21 |
댓글