Python공부/프로그래머스
(Python) 완주하지 못한 선수 (프로그래머스 Lv.1)/value값으로 key가져오기
별ㅇI
2023. 6. 16. 05:29
반응형
완주하지 못한 선수 (프로그래머스 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값 가져오는 양식을 자꾸 까먹어서 검색해오는데 나중에 검색 하지 못할 때더 생길 수 있으니 외워두자!
반응형