[프로그래머스] 오픈채팅방 (Python)
[프로그래머스] 오픈채팅방
- 문제 출처: https://programmers.co.kr/learn/courses/30/lessons/42888
- 난이도: Level 2
풀이
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) # {}