문제 확인
나의 풀이
- 마지막에 설정한 이름에 따라 기존 메시지는 전부 바뀌게 된다.
- 반복문을 통해 uid와 마지막 이름 사이 Hash를 구성하고, 이후 f-string을 통해서 출력했다.
- $2 * O(N)$ 정도의 시간 복잡도를 가지기 때문에, 시간 초과 없이 처리할 수 있다.
# 입장 : 닉네임이 들어옴 -> 퇴장 : 닉네임님이 나감
# 닉네임 변경 방법 : 채팅방 나간 후, 새로운 닉네임으로 다시 들어감 / 채팅방에서 닉네임 변경
# 변경 -> 기존 출력 메시지 닉넴도 변경
# 유저 구분 -> uid 활용!
# uid 변경한 경우, 기존 메시지까지 변경
# uid : 마지막 이름으로
def solution(record):
msg_list = []
last_name = {}
# uid에 마지막 이름 정보 할당하기
for r in record:
info = r.split(" ")
# 이름 설정/변경이 있는 경우
if len(info) == 3:
last_name[info[1]] = info[2]
for r in record:
info = r.split(" ")
if info[0] == "Enter":
msg_list.append(f"{last_name[info[1]]}님이 들어왔습니다.")
elif info[0] == "Leave":
msg_list.append(f"{last_name[info[1]]}님이 나갔습니다.")
return msg_list