https://programmers.co.kr/learn/courses/30/lessons/42888
코딩테스트 연습 - 오픈채팅방
오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오
programmers.co.kr
<내 코드>
- 문제에서 최종적으로 변경된 아이디로 관리자 창에 출력하기 때문에 딕셔너리에 키값을 uid, 밸류를 닉네임으로 저장해서 최종적인 아이디를 파악했다.
- 그 다음 다시 record를 돌면서 입장, 퇴장 했을 때 answer에 문자열을 담았다.
- 이때 r을 split하지 않으면 Enter 덩어리로 파악이 안되고 인덱스 번호를 지정해줘야해서 r.split()을 했다.
def solution(record):
answer = []
dic = {}
#최종적인 아이디와 닉네임 담는 딕셔너리
for r in record:
r = r.split()
if r[0] == 'Enter' or r[0] =='Change':
dic[r[1]] = r[2]
# record를 돌면서 입장, 퇴장인 경우 answer에 담아줌
for r in record:
r = r.split()
if r[0] == 'Enter':
answer.append('{}님이 들어왔습니다.'.format(dic[r[1]]))
elif r[0] =='Leave':
answer.append('{}님이 나갔습니다.'.format(dic[r[1]]))
return answer
'알고리즘 > 구현' 카테고리의 다른 글
[프로그래머스 - Level 2] 프린터 (파이썬) (0) | 2022.01.12 |
---|---|
[프로그래머스 - Level 2] 기능개발(파이썬) (0) | 2022.01.11 |
[프로그래머스 - Level 2] 문자열 압축(파이썬) (0) | 2022.01.11 |
[프로그래머스 - Level 1] 비밀지도(파이썬) (0) | 2022.01.11 |
[프로그래머스 - Level 1] 크레인 인형뽑기 게임(파이썬) (0) | 2022.01.07 |