본문 바로가기
알고리즘/구현

[프로그래머스 - Level 2] 오픈채팅방(파이썬)

by 호리미 2022. 1. 11.

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

 

코딩테스트 연습 - 오픈채팅방

오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오

programmers.co.kr

 

<내 코드>

- 문제에서 최종적으로 변경된 아이디로 관리자 창에 출력하기 때문에 딕셔너리에 키값을 uid, 밸류를 닉네임으로 저장해서 최종적인 아이디를 파악했다.

- 그 다음 다시 record를 돌면서 입장, 퇴장 했을 때 answer에 문자열을 담았다.

- 이때 r을 split하지 않으면 Enter 덩어리로 파악이 안되고 인덱스 번호를 지정해줘야해서 r.split()을 했다.

def solution(record):
    answer = []
    dic = {}
    
    #최종적인 아이디와 닉네임 담는 딕셔너리
    for r in record:
        r = r.split()
        if r[0] == 'Enter' or r[0] =='Change':
            dic[r[1]] = r[2]
    # record를 돌면서 입장, 퇴장인 경우 answer에 담아줌         
    for r in record:
        r = r.split()
        if r[0] == 'Enter':
            answer.append('{}님이 들어왔습니다.'.format(dic[r[1]]))
        elif r[0] =='Leave':
            answer.append('{}님이 나갔습니다.'.format(dic[r[1]]))
    return answer