[프로그래머스/카카오 42888] 오픈채팅방 (Python)
문제 링크 #
개요 #
- 딕셔너리를 사용해 해결할 수 있는 문제다.
문제 조건 #
- 채팅방 상태 메시지에 대해 닉네임 변경 사항을 적용하여
최종적으로 UI 상에서 보여지는 메시지를 목록을 반환하는 문제다.
문제 해설 #
- uid에 대한 닉네임이 짝지어진 딕셔너리(
name_dict)를 기반으로 최종적인 닉네임 목록을 기록한다. - 메시지가 Enter와 Change로 시작하는 경우 닉네임이 설정 또는 변경된 것이라 인지하여 딕셔너리를 수정한다.
name_dict에서 uid에 대한 닉네임을 참조하여 상태 메시지를 조건에 맞는 형식으로 변환한다.
해설 코드 #
python
def solution(record):
answer = []
record = [rec.split() for rec in record]
name_dict = {rec[1]:rec[2] for rec in record if rec[0] in {'Enter','Change'}}
msg_dict = {'Enter':'들어왔습니다.','Leave':'나갔습니다.'}
for rec in record:
if rec[0] in {'Enter','Leave'}:
answer.append(name_dict[rec[1]]+'님이 '+msg_dict[rec[0]])
return answer