728x90
https://programmers.co.kr/learn/courses/30/lessons/42888
코딩테스트 연습 - 오픈채팅방
오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오
programmers.co.kr
- 생각
- 처음에는 변화가 있을 때마다 answer에 리스트를 추가/이름 변경을 하려고 했으나 계속 런타임 에러가 났다.
- 런타임 에러가 해결이 되지 않아 문제를 다시 읽으니 모든 기록이 처리된 후라는 글자가 보였다.
- 그래서 이름을 변경한 사람들을 모두 처리한 후 answer 리스트를 작성하기로 바꿨다.
- 문제를 꼼꼼히 읽어야겠다..
- 코드
def solution(record):
answer = []
user = {}
# 이름 변경한 사람 처리
for r in record:
if r.split()[0] != 'Leave':
user[r.split()[1]] = r.split()[2]
# 결과 출력
for r in record:
if r.split()[0] == 'Enter':
answer += [f'{user[r.split()[1]]}님이 들어갔습니다.']
elif r.split()[0] == 'Leave':
answer += [f'{user[r.split()[1]]}님이 나갔났습니다.']
return answer
- 풀면서 얻은 점
- 딕셔너리에 키가 있는지 체크하기
- 찾고자 하는 키 in 딕셔너리
- True / False
- 딕셔너리. get(찾고자 하는 키)
- 키값에 해당하는 값 / 만약 해당 키가 없는 경우 None
- 찾고자 하는 키 in 딕셔너리
- 딕셔너리에 키가 있는지 체크하기
728x90
반응형
'TIL - 프로그래밍 > Python 알고리즘' 카테고리의 다른 글
[백준] 1182. 부분수열의 합 - Python (0) | 2022.06.06 |
---|---|
[백준] 1987. 알파벳 - Python (0) | 2022.06.06 |
[프로그래머스] Lv.1 숫자 문자열과 영단어 - Python (0) | 2022.06.04 |
[프로그래머스] Lv.1 로또의 최고 순위와 최저 순위 - Python (0) | 2022.06.04 |
[백준] 1697. 숨바꼭질 - Python (0) | 2022.06.03 |
댓글