문제 설명
수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다.
마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요.
제한사항
- 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다.
- completion의 길이는 participant의 길이보다 1 작습니다.
- 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다.
- 참가자 중에는 동명이인이 있을 수 있습니다.
def solution(participant, completion):
# 두 리스트가 같다면 같은 위치에 같은 값이 있어야 한다고 생각해서 다른 부분을 찾는다
participant.sort()
completion.sort()
for i, name in enumerate (participant):
if i < len(completion):
if name == completion[i]:
continue
else:
return name
else:
return name
def solution(participant, completion):
# 위와 같은 내용이지만 try를 써서 예외처리를 해줬다
answer = ''
participant.sort()
completion.sort()
for i, name in enumerate (participant):
try:
if name == completion[i]:
continue
else:
return name
except:
return name
from collections import Counter
# collections의 Counter을 사용해서 갯수를 세주고 빼서 남은게 정답이다
def solution(participant, completion):
com = list((Counter(participant) - Counter(completion)).keys())[0]
return com
'2021 파이썬 챌린지' 카테고리의 다른 글
2021.07.17 17일차 문제 예시답안 (0) | 2021.07.18 |
---|---|
2021.07.017 17일차 문제 (0) | 2021.07.17 |
2021.07.016 16일차 문제 (0) | 2021.07.16 |
2021.07.15 15일차 문제 예시답안 (0) | 2021.07.16 |
2021.07.015 15일차 문제 (0) | 2021.07.15 |