여름의 서재
[프로그래머스] 오픈 채팅방 (파이썬) 본문
728x90
📕 문제
https://programmers.co.kr/learn/courses/30/lessons/42888
💡 풀이법
1. 들어오고 나가는 행위를 담을 리스트 actions와 그때마다의 행위의 주체를 담을 리스트 users를 만든다. 그리고 user들의 닉네임을 담을 딕셔너리 nicknames를 만들었다.
2. record를 돌면서 enter일때는 actions에 0을 추가하고 닉네임을 갱신한다. leave일때는 actions에 1을 추가한다. change일때는 닉네임만 갱신시킨다.
3. users와 actions를 zip을 이용해 같이 돌면서 action이 0일때와 1일때 각각의 맞는 글을 answer에 추가한다.
def solution(record):
answer = []
actions = []
users = []
nicknames = {}
for rec in record:
rec = rec.split()
if rec[0] == "Enter":
actions.append(0)
nicknames[rec[1]] = rec[2]
elif rec[0] == "Leave" :
actions.append(1)
else:
nicknames[rec[1]] = rec[2]
continue
users.append(rec[1])
for user, action in zip(users, actions):
nickname = nicknames[user]
if action:
answer.append(nickname + "님이 나갔습니다.")
else:
answer.append(nickname + "님이 들어왔습니다.")
return answer
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 거리두기 확인하기 (파이썬) (0) | 2022.01.07 |
---|---|
[프로그래머스] 숫자 문자열과 영단어 (파이썬) (0) | 2022.01.07 |
[프로그래머스] 보석 쇼핑 (파이썬) (0) | 2022.01.07 |
[프로그래머스] 디스크 컨트롤러 (파이썬) (0) | 2022.01.07 |
[프로그래머스] 표편집 (파이썬) (0) | 2022.01.07 |
Comments