[programmers] 오픈채팅방

wonyu·2022년 1월 20일
0

algorithm

목록 보기
18/25

문제 링크

https://programmers.co.kr/learn/courses/30/lessons/42888

풀이 방법

  1. 가장 최근 닉네임이 필요하므로 일단 for문을 돌면서 해당 id에 대한 최신 닉네임을 딕셔너리로 저장한다.
  2. 다시 for문을 돌면서 Enter와 Leave에 대해 최신 닉네임과 함께 메세지를 answer에 추가한다. (Change는 추가할 필요 X)

코드

def solution(record):
    answer = []
    nicknames = dict()

    # for문을 돌면서 id에 대해 가장 최신의 닉네임을 딕셔너리로 저장
    for txt in record:
        if txt[0] == "E" or txt[0] == "C":
            status, uid, nickname = txt.split()
            nicknames[uid] = nickname

    # 다시 for문을 돌면서 Enter, Leave에 대한 메세지를 answer에 추가
    for txt in record:
        if txt[0] == "E":
            status, uid, nickname = txt.split()
            answer.append(nicknames[uid] + "님이 들어왔습니다.")
        elif txt[0] == "L":
            status, uid = txt.split()
            answer.append(nicknames[uid] + "님이 나갔습니다.")

    return answer

0개의 댓글