728x90
문제
코딩테스트 연습 - 오픈채팅방
오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오
programmers.co.kr
코드
def solution(record):
user_id = dict()
seq = []
ment = []
for i in record:
step = i.split()
if step[0] == 'Enter':
user_id[step[1]] = step[2]
seq.append(step[1])
ment.append("님이 들어왔습니다.")
elif step[0] == 'Leave':
seq.append(step[1])
ment.append("님이 나갔습니다.")
else:
user_id[step[1]] = step[2]
answer = [user_id[seq[i]] + ment[i] for i in range(len(seq))]
return answer
풀이
복잡한 알고리즘을 생각하지 않아도 되는 힐링 문제다.
간단한 문제라고 생각한다.
Enter, Leave, Change 에 따라서 각자 다른 동작을 하면된다.
주의해야 할 사항은 Enter 와 Change 를 할 때 이전 로그에서 이름을 모두 바꿔야 한다는 것이다.
이 문제에 대해서는 딕셔너리를 이용해 key = user_id, value = 이름으로 활용하여 해결했다.
"님이 들어왔습니다.", "님이 나갔습니다." 에 대해서는 순서 그대로 출력하면 되니 배열에 추가했다.
300x250
'코딩코딩' 카테고리의 다른 글
[이코테] 떡볶이 떡 만들기 - 파이썬 (0) | 2021.06.18 |
---|---|
[백준] 1260번 : DFS와 BFS - 파이썬 풀이 (0) | 2021.06.16 |
[이코테] 음료수 얼려 먹기 - 파이썬 (0) | 2021.06.12 |
[이코테] 왕실의 나이트 - 파이썬 (0) | 2021.06.10 |
[프로그래머스] level2 - 짝지어 제거하기 : 파이썬(Python) 풀이 (2) | 2021.05.26 |