프로그래머스 | 완주하지 못한 선수

내 코드 💡

  • 1번째 시도 (정확성은 통과했지만 효율성에서 실패)
def solution(participant, completion):
    for i in completion:
        participant.remove(i)
        
    return participant[0]
    
    
정확성  테스트
테스트 1 〉	통과 (0.00ms, 10.2MB)
테스트 2 〉	통과 (0.01ms, 10.1MB)
테스트 3 〉	통과 (0.70ms, 10.3MB)
테스트 4 〉	통과 (2.91ms, 10.4MB)
테스트 5 〉	통과 (2.66ms, 10.3MB)

효율성  테스트
테스트 1 〉	실패 (시간 초과)
테스트 2 〉	실패 (시간 초과)
테스트 3 〉	실패 (시간 초과)
테스트 4 〉	실패 (시간 초과)
테스트 5 〉	실패 (시간 초과)

  • 2번째 시도 (통과)
def solution(participant, completion):
    participant.sort() #선수 
    completion.sort()  #완주자
    completion.append(0)

    for p, c in zip(participant, completion):
        if p != c:
            return p
  1. 선수, 완주자 모두 정렬을 해준다.
  2. 길이를 맞추기 위해 완주자 리스트 마지막에 요소 추가
  3. zip()을 이용해 선수와 완주자를 동시에 for문에 돌린다.
  4. 선수p 와 완주자c 가 다를 경우 선수p반환

좋은 웹페이지 즐겨찾기