Python/CoTe

[programmers] 완주하지 못한 선수

joannekim0420 2022. 2. 19. 17:54
728x90

 

 

 

 

첫 번째 코드 - 정확도 통과, 효율성 통과X 

list 의 pop, remove은 너무 오래 걸린다. 

def solution(participants, completions):
    answer = ''
 
    for c in completions:
        participants.pop(participants.index(c))

    return participants[0]

 

두 번쨰 코드

from collections import defaultdict 

def solution(participants, completions):
    answer = ''
    unfinished = defaultdict(int)
    for p in participants:
        unfinished[p] += 1
    
    for c in completions:
        unfinished[c] -=1
    
    for key, value in unfinished.items():
        if value != 0:
            answer = key
    return answer

사실 sort()해서 차이가 나는 부분을 출력하면 되는 코드로 하려고 했는데 머릿속에서 무언가 안 될 것 같아서 딕셔너리 사용. 근데 다른 사람들 풀이 보니까 그렇게 해도 문제 없었다. 

 

#sort를 이용한 다른 사람 풀이

def solution(participant, completion):
    participant.sort()
    completion.sort()
    for p, c in zip(participant, completion):
        if p != c:
            return p
    return participant[-1]

'Python > CoTe' 카테고리의 다른 글

[programmers] 문자열 내 마음대로 정렬하기  (0) 2022.02.21
[programmers] 크레인 인형 뽑기  (0) 2022.02.19
[programmers] 내적  (0) 2022.02.19
[programmers] 숫자 문자열과 영단어  (0) 2022.02.19
[programmers] 포켓몬  (0) 2022.02.19