코딩테스트

[프로그래머스] 완주하지 못한 선수 - Lv.1

pyflu 2023. 8. 18. 22:31

[프로그래머스] 완주하지 못한 선수 Lv.1 - [파이썬/python]

 

https://school.programmers.co.kr/learn/courses/30/lessons/42576

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


 

문제 설명

 

 

완주하지 못한 선수의 이름을 반환(return)하면 되는 문제이다.

 

 

마라톤에 참여한 선수들의 이름이 담긴 배열 participant

완주한 선수들의 이름이 담긴 배열 completion

 

 

※ 제한사항

  • 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다.
  • completion의 길이는 participant의 길이보다 1 작습니다.
  • 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다.
  • 참가자 중에는 동명이인이 있을 수 있습니다.

더보기
  • 참여한 선수들과 완주한 선수들을 정렬 후 비교하면 어떨까요?

 

 

 

 




정답 주의!!!




 

 

 

 


def solution(participant, completion):
   
    # 정렬을 해주어 비교하기 쉽게 만들기
    # participant와 completion를 정렬했기에 같은 인덱스의 이름이 같으면 완주를 했다는 뜻입니다.
    # 같은 인덱스의 이름이 다르면 완주를 못한 사람이겠죠.
    participant.sort()
    completion.sort()
   
    # 정렬된 참가자 명단과 완주자 명단을 순서대로 비교합니다.
    for a, b in zip(participant, completion):
       
        # 같은 인덱스의 이름이 다르면 해당 참가자가 완주하지 못한 선수입니다.
        if a != b:
            return a
   
    # 만약 모든 비교가 완료되었을 때, 마지막 참가자가 완주하지 못한 선수입니다.
    # completion은 participant보다 길이가 1 작기 때문입니다.
    return participant[-1]

728x90