[PRO] 오픈채팅방

천호영·2022년 8월 27일
0

알고리즘

목록 보기
47/100
post-thumbnail

입장기록을 관리하는 리스트에서는 uid로 모두 기록한 후, uid와 nickname매칭을 관리하는 리스트를 갱신시킨 후 나중에 한번에 다 바꿔주는 방식으로 풀었다.

from collections import defaultdict

def solution(record):
    enter_leave_list = []
    uid_nickname_match = defaultdict(str)
    
    for one_record in record:
        split_list = one_record.split()
        op = split_list[0]
        if op=="Enter":
            uid, nickname = split_list[1], split_list[2]
            enter_leave_list.append([uid, "Enter"])
            uid_nickname_match[uid] = nickname
        elif op=="Leave":
            uid = split_list[1]
            enter_leave_list.append([uid, "Leave"])
        else:
            uid, nickname = split_list[1], split_list[2]
            uid_nickname_match[uid] = nickname
    
    
    answer = []
    for uid, enter_or_leave in enter_leave_list:
        message = f"{uid_nickname_match[uid]}"
        if enter_or_leave == "Enter":
            message += "님이 들어왔습니다."
        else:
            message += "님이 나갔습니다."
        answer.append(message)
    
    return answer

Leave가 아닐때만 닉네임 변경하고, record만 돌면서 출력해도 된다.

profile
성장!

0개의 댓글