- 문제 링크: https://school.programmers.co.kr/learn/courses/30/lessons/42888
- level2
- 2019 KAKAO BLIND RECRUITMENT
Q1) 문제를 어떻게 이해하셨나요?
A1) 이 문제는 채팅방에서 유저의 입장, 퇴장, 닉네임 변경 기록을 바탕으로, 최종적으로 관리자가 보게 될 메시지를 출력하는 문자열 재구성 문제입니다.
Q2) 풀이 전략
A2)
- 각 유저의 user_id별로 최신 닉네임을 저장해야 해요. → "Change"와 "Enter" 명령에서 갱신됨
- 실제 메시지를 출력하는 건 "Enter", "Leave" 명령만 해당돼요. → 출력용 메시지는 이 명령만 기록하고, 닉네임은 나중에 넣음
- 따라서, 첫 번째 패스에서는 유저 ID 기준으로 닉네임 딕셔너리(map)를 만듭니다. 두 번째 패스에서는 출력 메시지를 만들되, 닉네임은 딕셔너리에서 최신 닉네임을 참조해서 출력합니다.
🔥 내 풀이
def solution(record):
answer = []
check = []
user_map = {}
# 닉네임 기록하기
for entry in record:
step = entry.split(" ")
if step[0] == "Enter": # 입장
user_map[step[1]] = step[2]
check.append([step[1], 1])
elif step[0] == "Leave": # 퇴장
check.append([step[1], 0])
else:
user_map[step[1]] = step[2]
# 메시지 만들기
for uid, action in check:
if action == 1:
answer.append(user_map[uid] + "님이 들어왔습니다.")
else:
answer.append(user_map[uid] + "님이 나갔습니다.")
return answer
[추천 강의✨]
38군데 합격 비법, 2025 코딩테스트 필수 알고리즘| 딩코딩코 - 인프런 강의
현재 평점 5.0점 수강생 2,019명인 강의를 만나보세요. 초보자도 쉽게 이해하는 단계별 설명으로, 막연했던 코딩 테스트가 명확해집니다. 필요한 것만 배우고 바로 실전에 적용하세요! 알고리즘,
www.inflearn.com
6주 완성! 백엔드 이력서 차별화 전략 4가지 - 똑같은 이력서 속에서 돋보이는 법| 딩코딩코 - 인
현재 평점 5.0점 수강생 457명인 강의를 만나보세요. 모든 이력서가 비슷해 보이는 세상, ‘차별화’가 합격을 만듭니다. 6주간, 백엔드 실무자가 직접 전하는 실전 이력서 전략 4가지를 배우세요.
www.inflearn.com
728x90
반응형
'Algorithm' 카테고리의 다른 글
| [카카오 코테 2023 | python] 개인정보 수집 유효기간 (0) | 2025.06.18 |
|---|---|
| [카카오 코테 2022 | python] 양궁대회 (0) | 2025.06.17 |
| [카카오 코테 2022 | python] k진수에서 소수 개수 구하기 (0) | 2025.06.17 |
| [카카오 코테 2021 | python] 거리두기 확인하기 (0) | 2025.06.17 |
| [카카오 코테 2018 | python] 캐시 (1) | 2025.06.17 |