문제
해결 과정
record
를 공백을 기준으로 나눈다.
Enter
일 때 array
에 유저의 상태(들어왔는지, 나갔는지)와 유저의 아이디를 삽입해주고, 유저 아이디를 키로, 유저의 닉네임을 값으로 딕셔너리에 저장
Leave
일 때 array
에 유저의 상태(들어왔는지, 나갔는지)와 유저의 아이디를 삽입
Change
일 때 유저 아이디를 키로, 유저의 닉네임을 값으로 저장되어있는 딕셔너리에서 유저의 닉네임을 바꿔준다.
- 유저의 상태(입장, 퇴장)와 유저의 아이디가 저장되어있는
array
에서
- 입장했으면
answer
에 유저의 닉네임 + "님이 들어왔습니다."를 삽입
- 퇴장했으면
answer
에 유저의 닉네임 + "님이 나갔습니다."를 삽입
시행착오
- 시간 초과
- 우선 유저의 닉네임이 아니라 유저의 아이디를 기준으로
answer
에 저장하고 난 뒤
ex) "uid1234님이 들어왔습니다."
- 유저의 아이디와 닉네임이 저장된 딕셔너리와 비교하여 아이디가 같으면 닉네임으로 유저 아이디를 바꿨다.
ex) "Prodo님이 들어왔습니다."
def solution(record):
answer = []
dict = {}
for i in record:
user = i.split()
if user[0] == "Enter":
answer.append(user[1]+"님이 들어왔습니다.")
dict[user[1]] = user[2]
elif user[0] == "Leave":
answer.append(user[1]+"님이 나갔습니다.")
elif user[0] == "Change":
dict[user[1]] = user[2]
for i in range(len(answer)):
for j in dict:
if answer[i].startswith(j):
answer[i] = answer[i].replace(j,dict[j])
return answer
풀이
def solution(record):
answer = []
array = []
dict = {}
for i in record:
user = i.split()
if user[0] == "Enter":
array.append([user[0],user[1]])
dict[user[1]] = user[2]
elif user[0] == "Leave":
array.append([user[0],user[1]])
elif user[0] == "Change":
dict[user[1]] = user[2]
for i in array:
if i[0] == "Enter":
answer.append(dict[i[1]] + "님이 들어왔습니다.")
if i[0] == "Leave":
answer.append(dict[i[1]] + "님이 나갔습니다.")
return answer