Dia Egg - Shugo Chara

Python공부/프로그래머스

(Python) 완주하지 못한 선수 (프로그래머스 Lv.1)/value값으로 key가져오기

별ㅇI 2023. 6. 16. 05:29
728x90
반응형

완주하지 못한 선수 (프로그래머스 Lv.1)

https://school.programmers.co.kr/learn/courses/30/lessons/42576

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

내 코드

처음에는 간단하게 이렇게 짜봤는데 답은 다 맞으나 효율성 테스트문제에서 시간 초과가 떴다.

def solution(participant, completion):
    answer = ''
    for com in completion:
        participant.remove(com)
    answer = ''.join(participant)
    return answer

remove함수의 문제 인것 같아 아래와 같이 코드를 바꿨더니 성공했다. 시간 초과가 뜰때는 딕셔너리를 먼저 떠올려보기!

def solution(participant, completion):
    answer = ''
    n_part = {}
    for part in participant:
        n_part[part] = 0
    
    for part in participant:
        n_part[part] += 1
    
    for com in completion:
        n_part[com] -= 1
        
    answer = ''.join([k for k, v in n_part.items() if v == 1])
    return answer

value값으로 key값 가져오는 양식을 자꾸 까먹어서 검색해오는데 나중에 검색 하지 못할 때더 생길 수 있으니 외워두자!

728x90
반응형