1. 완주하지 못한 선수
URL : https://programmers.co.kr/learn/courses/30/lessons/42576
1.1 문제 설명
- 수많은 마라톤 선수들이 마라톤에 참여하였습니다.
- 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다.
- 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요.
1.2 제한사항
- 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다.
- completion의 길이는 participant의 길이보다 1 작습니다.
- 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다.
- 참가자 중에는 동명이인이 있을 수 있습니다.
1.3 Solution
1
2
participant = ['marina', 'josipa', 'nikola', 'vinko', 'filipa']
completion = ['josipa', 'filipa', 'marina','vinko']
1
2
3
4
5
6
7
8
9
# participant : 참가자
# completion : 완주자
def solution(participant, completion):
participant.sort()
completion.sort()
for i,j in zip(participant,completion):
if i != j:
return (i)
return participant[-1]
1
solution(participant, completion)
1
'nikola'
- 참가자와 완주자를 알파벳순으로 정렬함
- zip과 for문을 이용하여 참가자와 완주자를 비교하여 만일 같지 않다면 참가자 이름을 리턴하는 함수를 만듬
- 하지만 참가자의 제일 마지막에 있는 사람이 완주하지못한 사람일수도 있기 때문에 마지막엔 참가자의 마지막 사람을 리턴함