-
[python] 프로그래머스 - 42576 완주하지 못한 선수__Python/__Algorithm 2021. 9. 8. 22:12
[문제]
문제링크: https://programmers.co.kr/learn/courses/30/lessons/42576
코딩테스트 연습 - 완주하지 못한 선수
수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수
programmers.co.kr
문제설명
- 단 한 명의 선수를 제외하고는 모든 선수가 완주
- 마라톤에 참여한 선수들 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요.
제한사항
- 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다.
- completion의 길이는 participant의 길이보다 1 작습니다.
- 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다.
- 참가자 중에는 동명이인이 있을 수 있습니다.내 풀이
- 참가자 수 = 완주자 수 + 1
- participant 배열과 completion 배열은 단 한 명을 제외하곤 같은 값이 들어있음.
- 두 배열을 각각 정렬해 매치 -> 참가자와 완주자가 다른 값으로 나올 경우 해당 참가자는 완주 실패
코드
더보기zip_longest 활용
참고 URL: https://docs.python.org/3/library/itertools.html
def solution(participant, completion): from itertools import zip_longest participant.sort(); completion.sort() for a,b in zip_longest(participant,completion,fillvalue=None): if a!=b: return a
출력결과 확인
더보기'leo'는 완주자 배열에서 매칭되는 자리값이 없어 기본값인 None으로 출력됨
기본값을 '완주실패'로 지정했을 경우
***중복값이 있을 경우(동명이인) -
728x90'__Python > __Algorithm' 카테고리의 다른 글
[Python] 백준 - 1874 스택 수열 (0) 2021.12.20 [python] 백준 - 1654 랜선자르기 (0) 2021.12.20 [python] 프로그래머스 - 87946 피로도 (0) 2021.11.16 [python] 프로그래머스 - 12906 같은 숫자는 싫어 (0) 2021.10.05 [python] 프로그래머스 - 12982 예산 (0) 2021.10.05