SW/알고리즘

파이썬 : 프로그래머스 : 완주하지 못한 선수 : 풀이

얇은생각 2019. 8. 25. 18:30
반응형

풀이

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

 

 

실행 결과

정확성 테스트

테스트 1 통과 (0.04ms, 10.7MB)
테스트 2 통과 (0.04ms, 10.8MB)
테스트 3 통과 (0.24ms, 10.9MB)
테스트 4 통과 (0.50ms, 11MB)
테스트 5 통과 (0.47ms, 11MB)

효율성 테스트

테스트 1 통과 (36.75ms, 87.5MB)
테스트 2 통과 (64.52ms, 127MB)
테스트 3 통과 (95.44ms, 154MB)
테스트 4 통과 (84.66ms, 168MB)
테스트 5 통과 (82.35ms, 168MB)

 

 

총평

해당 문제는 라이브러리 함수를 이용해 간단하게 해결을 하였더니 효율성 테스트를 통과하지 못하였습니다. 그래서 한번에 포문으로 문제를 해결하는 방식으로 수정하였습니다. 먼저 각 배열들을 정렬합니다. 그러면 상이한 값이 하나가 있을 것이기 떄문에 한번에 포문을 통해 같은 인덱스에서 다른 값이 있는지를 확인하였습니다. 그 과정에서 함수를 리턴을 합니다. 만약 리턴이 되지 않는다면 마지막에 위치하는 것이기 떄문에, 마지막 값을 리턴해줍니다.

반응형