오늘의 인기 글
최근 글
최근 댓글
Today
Total
05-10 00:03
관리 메뉴

우노

[Implementation] 프로그래머스 “완주하지 못한 선수” Python 풀이 본문

Algorithm/Implementation

[Implementation] 프로그래머스 “완주하지 못한 선수” Python 풀이

운호(Noah) 2022. 11. 21. 17:25

문제 링크

풀이

  • 해당 문제는 아래 3가지 방법으로 해결할 수 있습니다.
    • 해결책 1 : 두 배열을 정렬한 뒤, 루프를 통해 1:1 비교를 하고, 서로 다른 항목을 찾는 방법
    • 해결책 2 : 해시를 사용하는 방법
    • 해결책 3 : collections.Counter를 사용하는 방법
  • 해당 포스트에선 “해결책 3”에 대한 설명을 다루고 있습니다.
  • collections.Counter는 리스트에 존재하는 각 요소의 개수를 세주는 모듈입니다.
  • 세부 설명은 아래 예제 코드와 같습니다.

코드

import collections

def solution(participant, completion):

    # 1. Counter를 사용해, participant의 {참여자의 이름 : 참여자의 수}를 구한다.
    # 2. Counter를 사용해, completion의 {참여자의 이름 : 참여자의 수}를 구한다.
    # 3. 둘의 차를 구하면, 완주하지 못한 선수에 대한 counter가 반환된다.
    answer = collections.Counter(participant) - collections.Counter(completion)

    # counter의 key 값을 list화 한 뒤, 첫 번째 요소를 출력한다.
    return list(answer.keys())[0]

참고

Comments