출처 : programmers.co.kr/learn/courses/30/lessons/42576
* 이 포스팅은 Programmers 코딩 테스트 연습 Level 1 "완주하지 못한 선수" 문제풀이입니다.
문제 원본은 링크를 클릭하시면 확인하실 수 있습니다.
# 문제 설명
- 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다.
- 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요.
# 제한사항
- 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다.
- completion의 길이는 participant의 길이보다 1 작습니다.
- 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다.
- 참가자 중에는 동명이인이 있을 수 있습니다.
입출력 예
participant | completion | return |
["leo", "kiki", "eden"] | ["eden", "kiki"] | "leo" |
["marina", "josipa", "nikola", "vinko", "filipa"] | ["josipa", "filipa", 'marina", "nikola"] | "vinko" |
["mislav", "stanko", "mislav", "ana"] | ["stanko", "ana", "mislav"] | "mislav" |
# 코드 설명
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
def solution(participant, completion):
answer = ''
participant = sorted(participant)
completion = sorted(completion)
for i in range(len(participant)):
try:
if participant[i] != completion[i]:
answer += (participant[i])
break
except:
answer += (participant[-1])
return answer
|
cs |
-
participant = sorted(participant)
-
completion = sorted(completion)
-
입력으로 주어진 participant와 completion을 sorted() 함수를 이용하여 정렬해 줍니다.
-
list.sort() 함수는 정렬된 리스트를 원래의 리스트에 저장해주지만, sorted() 함수는 저장하지 않습니다.
-
-
for i in range(len(participant)):
-
participant와 completion의 원소들을 비교하며 같지 않은 값이 나올 경우 출력합니다.
-
-
except: answer += (participant([-1])
-
participant의 원소 개수가 하나 더 많기 때문에 마지막 원소가 완주하지 못한 사람일 수도 있습니다.
-
'Python > Programmers' 카테고리의 다른 글
[Python/Programmers/Level 1] 서울에서 김서방 찾기 (0) | 2020.10.01 |
---|---|
[Python/Programmers/Level 1] 문자열 내림차순으로 배치하기 (0) | 2020.10.01 |
[Python/Programmers/Level 1] 두 개 뽑아서 더하기 (0) | 2020.09.30 |
[Python/Programmers/Level 2] 올바른 괄호 (0) | 2020.09.30 |
[Python/Programmers/Level 2] 프린터 (0) | 2020.09.30 |