[프로그래머스] 오픈채팅방 (Python)

[프로그래머스] 오픈채팅방

풀이

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
def solution(record):
    answer = []
    arr = []
    user_info = {} #딕셔너리(dictionary) 선언

    for i in range(len(record)):
        arr.append(record[i].split())
        if arr[i][0] == "Enter" or arr[i][0] == "Change":
            user_info[arr[i][1]] = arr[i][2]

    for i in range(len(arr)):
        if arr[i][0] == "Enter":
            answer.append(user_info[arr[i][1]] + "님이 들어왔습니다.")
        elif arr[i][0] == "Leave":
            answer.append(user_info[arr[i][1]] + "님이 나갔습니다.")

    return answer

처음에 유저 아이디, 닉네임 각각에 대한 리스트를 만들어 문제를 풀었을 때 정확성 테스트는 통과하지만 효율성 테스트에서 시간초과 문제가 발생했었는데, 이는 딕셔너리(Key:유저 아이디, value:닉네임) 사용을 통해 해결할 수 있었다.



📌 딕셔너리: 키(key)와 값(value)이 한 쌍이 하나의 대응 관계를 가지는 자료형

dict={} #딕셔너리 선언

dict['uid1234']='Muzi' # 딕셔너리 추가
print(dict) # {'uid1234': 'Muzi'}

dict['uid1234']='Ryan' # 딕셔너리 수정
print(dict) # {'uid1234': 'Ryan'}

dict.pop('uid1234') # 딕셔너리 삭제
print(dict) # {}