본문 바로가기

프로그래밍/코딩테스트

프로그래머스 - 완주하지 못한 선수 효율성 테스트 해결

프로그래머스의 완주하지 못한 선수를 풀어보았다.

처음에는 간단하게 생각했었는데 계속 효율성 테스트에서 fail이 떠서 왜 이런지 고민해보았다.

 

step 1.

def solution(participant, completion):
    for index, value in enumerate(completion):
        if 1 == len(participant):
            break
        if completion[index] in participant:
            participant.remove(completion[index])
    

    answer = participant[0]
    return answer 

위에 코드는 처음에 푼 코드이다. 

구글을 리서치 하다가 zip을 이용해서 푼 코드를 보고 다시 풀어보니 해결되었다.

 

step2.

def solution(participant,completion):

    participant.sort()
    completion.sort()
    # print(list(zip(participant, completion)))
    for participant_one, completion_one in zip(participant, completion):
        if participant_one != completion_one :
            print('participant', participant)
            return participant_one

    return participant[-1]