728x90
반응형
1. 문제 설명
2. 풀이과정
해당 문제는 참여자 명단에서 완주한 사람을 제거하고 남은 한 명의 이름을 구하는 문제이다.
처음에 참여자 명단에서 완주한 사람을 제거하는 방식으로 해결해보려고 했지만 유효성 검사에서 시간초과가 발생했다.
하여 문제의 분류처럼 해시를 이용하여 해결할 수 있는 방법을 생각했고 딕셔너리를 활용하였다.
- 참여자 명단을 저장할 딕셔너리를 생성한다. d = {}
- 참여자 명단을 한 명씩 불러오며 for i in participant
- 만약 동명이인이면 사람 수를 증가시킨다. if (i in d): d[i] += 1
- 반면에 처음 나온 사람이면 딕셔너리에 추가한다. else: d[i] = 1
- 완주자 명단을 한 명씩 불러오며 for i in completion
- 해당 사람의 수를 감소시키고 d[i] -= 1
- 만약 해당 사람이 모두 완주했다면 해당 사람을 딕셔너리에서 제거한다. if (d[i] == 0): del d[i]
- 남은 한 명의 완주하지 못한 사람의 이름을 저장한다. for i in d.keys(): answer = i
반응형
3. 소스코드
def solution(participant, completion):
answer = ''
d = {}
for i in participant:
if (i in d):
d[i] += 1
else:
d[i] = 1
for i in completion:
d[i] -= 1
if (d[i] == 0):
del d[i]
for i in d.keys():
answer = i
return answer
728x90
반응형
'프로그래머스 > Python' 카테고리의 다른 글
[프로그래머스] 2 x n 타일링 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.09.27 |
---|---|
[프로그래머스] 숫자 게임 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.09.25 |
[프로그래머스] 문자열 나누기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.09.23 |
[프로그래머스] 숫자 변환하기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.09.21 |
[프로그래머스] 롤케이크 자르기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.09.17 |
[프로그래머스] 체육복 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.09.15 |
[프로그래머스] [1차] 프렌즈4블록 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.09.13 |
[프로그래머스] [3차] 파일명 정렬 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.09.11 |