본문 바로가기
알고리즘/프로그래머스

[Python] 완주하지 못한 선수

by 컴공맨 2021. 2. 7.
 

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

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

programmers.co.kr


풀이

참가자와 완주자들의 배열을 정렬하면 문자들의 순서가 동일하게 정렬되기 때문에 같은 인덱스에서 다른 문자가 나올 경우 완주하지 못한 선수로 하였고 반복문을 다 돌때까지 찾지못했다면 완주한 선수의 배열의 길이는 참가자의 배열의 길이 -1 이므로 결국 참가자의 맨 마지막 사람이 완주하지 못했다는 의미가 되어 완주하지 못한 선수를 구해 해결할 수 있었습니다.

 

파이썬을 배우면서 풀고있는 알고리즘문제이기 때문에 다른 사람들의 풀이를 보면서 collections의 Counter를 알게되었고 이를 사용하여 더 쉽게 풀 수 있었습니다.

 

[Python] collections.Counter()

collections에 내장된 함수인 Counter()는 dictionary와 같이 hash 자료들의 개수를 셀 때 사용되고 dictionary처럼 {key : value} 형식으로 만들어진다. Counter()로 처리된 값 끼리 빼는 것도 가능하고 0 이나..

comgong-man.tistory.com


코드

def solution(participant, completion):
    answer = ''

    participant.sort()
    completion.sort()

    for i in range(len(completion)):
        if completion[i] != participant[i]:
            answer = participant[i]
            break

    if not answer:
        answer = participant[-1]

    return answer

 

pyo7410/Algorithm

1일 1커밋을 목표로! Contribute to pyo7410/Algorithm development by creating an account on GitHub.

github.com

 

'알고리즘 > 프로그래머스' 카테고리의 다른 글

[Python] 체육복  (0) 2021.02.13
[Python] 모의고사  (0) 2021.02.12
[Python] 신규 아이디 추천  (0) 2021.02.04
[Python] 두 개 뽑아서 더하기  (0) 2021.01.30
[Python] 크레인 인형뽑기 게임  (0) 2021.01.28