본문 바로가기
파이썬알고리즘

20210630#(51) 프로그래머스 완주하지 못한 선수

by zho 2021. 6. 30.

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

 

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

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

programmers.co.kr

 

처음 문제 풀때는 시간 효율성을 생각하지 않고 풀었다. 사실 시간효율성문제가 생길지도 몰랐다.

def solution(participant, completion):

        for i in completion:

            participant.remove(i)

    answer="".join(participant)

    return answer

테스트 케이스는 전부 맞았지만 효율성 테스트에서 다 실패라고 떴다.

 

그래서 위와 같이 다시 풀게 되었다.

def solution(participant, completion):
    participant.sort()
    completion.sort()
    for i in range(len(completion)):
        if participant[i] !=completion[i]:
            return participant[i]            
    return participant[i+1]

정렬을 해준뒤 배열요소를 비교하는 풀이이다. 꽤나 간단하지만 생각하기 어려웠다.(구글링의 도움을 받음)

728x90