알고리즘/python

[프로그래머스/Python] 42576번: 완주하지 못한 선수

minliz 2025. 4. 22. 13:32

목차

📝 문제

🎯 알고리즘 핵심 단계

✅ 실습 인증 파트_코드

⚡ 트러블 슈팅

🤔 이것도 한 번 생각해 봐요! (참고 자료)


📝 문제

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

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 


🎯 알고리즘

💡 문제 이해

  • 마라톤에 참가한 사람들: participant 리스트
  • 완주한 사람들: completion 리스트
  • 단 한 명만 완주를 못한 상황
  • 참가자 중에서 완주하지 못한 사람의 이름을 찾아서 반환하는 문제

단, 동명이인(이름이 같은 사람)도 있을 수 있다는 점! 주의!

💡 문제 접근

방법 1: collections.Counter 사용 (가장 효율적)

  1. participant와 completion 리스트에서 이름별 개수를 세기
  2. 두 개의 Counter를 빼기 연산으로 비교
  3. → 남는 이름이 바로 완주 못한 사람

 


✅ 실습 인증 _코드

from collections import Counter
def solution(participant, completion):
    answer= Counter(participant) - Counter(completion)
    return list(answer.keys())[0]