Algorithm/Programmers

[프로그래머스/카카오 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
PREV [프로그래머스/카카오 17676] 추석 트래픽 (Python) NEXT [프로그래머스/카카오 60057] 문자열 압축 (Python)