본문 바로가기
Algorithm/프로그래머스

[프로그래머스] 완주하지 못한 선수(level 1) Python 문제 풀이 -2

by daewooki 2021. 6. 15.
반응형

나의풀이 : 2021.06.15 - [Algorithm/프로그래머스] - [프로그래머스] 완주하지 못한 선수(level 1) Python 문제 풀이

 

[프로그래머스] 완주하지 못한 선수(level 1) Python 문제 풀이

문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/42576 코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마.

wookidocs.tistory.com

 

문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/42576

 

코딩테스트 연습 - 완주하지 못한 선수

수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수

programmers.co.kr

 

다른 사람의 풀이를 보니 collections.Counter를 이용한 풀이법이 있었다.

댓글에도 다들 놀라워하고 있다 ㅋㅋㅋ 

 

import collections


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

 

정말.. 파이썬의 간결함이란 예술의 경지다..

 

Counter를 잘 사용하면 굉장히 유용할 것 같다. 

counter 객체가 빼기가 가능한지 처음 알았다(해보지를 않았으니..) 

 

Counter 에 대해서 공부해보면 좋을 것 같다.

https://docs.python.org/ko/3/library/collections.html#collections.Counter

 

문제 조건에서  완주하지 못한 인원은 한명이라고 명시되어 있으므로 counter 객체에서 빼고 [0] 번째 인덱스를 리턴한 것이다. 

 

문제 유형이 "해쉬" 에 있어서 진짜 해시 함수를 사용해야할 것 같으나 역시 문제 푸는데에는 정답은 없는 것 같다.!

 

반응형

댓글