Coding - Algo/python
[프로그래머스] 오픈채팅방 (python 파이썬)
jainn
2021. 6. 29. 17:16
728x90
문제
https://programmers.co.kr/learn/courses/30/lessons/42888
풀이 및 소스코드
닉네임은 변경이 가능하므로 딕셔너리에 담아서 {id:nickname} 정의해줬다.
stack 에는 id 값과 함께 들어왔는지(1) 나갔는지(0)를 담아준 후 한 번에 answer에 결과 값을 담아줬다.
def solution(record):
answer = []
stack = []
dic = {}
for r in record:
if r[:5] == 'Leave':
c, u_id = r.split()
stack.append((u_id, '0'))
else:
c, u_id, nick = r.split()
if c == 'Enter':
dic[u_id] = nick
stack.append((u_id, '1')) #1이 들어온 것
else:
dic[u_id] = nick
for u_id, c in stack:
if c == '1':
answer.append((dic[u_id]+"님이 들어왔습니다."))
else:
answer.append((dic[u_id]+"님이 나갔습니다."))
return answer
반응형