연습장

9. 완주하지 못한 선수 본문

프로그래머스/1단계

9. 완주하지 못한 선수

js0616 2023. 12. 14. 15:54

 

participant 에는 있고 completion 에 없는 사람을 1명 찾으면 된다.

 


간단하게 participant 에서 completion 을 빼면 되지않나 라고 생각했다.

 

빼기가 없어서 for 문으로 반복하여 진행해봤다. 

 

중복 이름도 있으므로 participant  에서 원소를 하나씩 빼서

completion 에 존재하면 지우고 존재하지 않으면 return 하도록 하였는데 

 

 

def solution(participant, completion):



    participant.sort()
    completion.sort()
    
    for part in participant:
        if part in completion:
            completion.remove(part)
        else:
            return part

 

 

 

시간 초과 부분에서 문제가 발생했다.

 


 

for 문으로 비교하는 부분에서 시간초과가 난것 같다.

 

정렬하였을때 다음과 같이 같은 인덱스에서 서로 다른 값을 가지는 경우를 찾으면 된다.

 

 

 

 

 

def solution(participant, completion):
    
    # 정렬
    participant.sort()
    completion.sort()
    
    for i in range(len(participant)):
        try: # 맨 마지막의 경우 completion[i] 가 없으므로 오류가 난다.
            if participant[i] != completion[i]:
                return participant[i]
        except: # 마지막까지 진행 되었다는건 정답이 맨 마지막이라는 뜻
            return participant[i]
        

'프로그래머스 > 1단계' 카테고리의 다른 글

11. 소수 찾기  (1) 2023.12.15
10. 카드 뭉치  (0) 2023.12.15
8. 문자열 나누기  (0) 2023.12.12
7. 체육복  (0) 2023.12.12
6. 숫자 짝궁  (0) 2023.12.12