Algorithm (PS)
[프로그래머스] 해시 - 완주하지 못한 선수 , dictionary in Python 정리
minjiwoo
2022. 2. 6. 16:04
728x90
https://programmers.co.kr/learn/courses/30/lessons/42576
코딩테스트 연습 - 완주하지 못한 선수
수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수
programmers.co.kr
오랜만에 해시 유형을 풀어보았다 !!
오랜만이라서 딕셔너리 쓰는 방법을 까먹었다,,,
i ) key 로 value 가져오기 : get()
Python 에서 key를 이용하여 딕셔너리의 value를 가져오려면 get() 함수를 사용하면 된다.
그런데 아주 편리한 점은, get(key값, default값) 현재 key 가 딕셔너리에 없으면 default 값으로 저장 후, default 값을 value로 반환한다.
ii ) python 에서 딕셔너리의 요소 삭제
del dict[key이름]
다음과 같이 삭제해 주면 된다.
iii) key 값들만 모아서 반환해주는 keys() 함수
또한 keys() 매소드는 현재 dictionary 에 있는 key들만 묶어서 객체로 반환해주는 아주 편리한 함수이다
dict_keys 타입으로 반환한다.
dic = {'apple':1, 'banana':3}
dict_keys(['apple', 'banana']) # 반환값
문제의 풀이는 다음과 같다 ~!
def solution(participant, completion):
answer = ""
p_dict = dict()
for p in participant:
p_dict[p] = p_dict.get(p, 0) + 1
for c in completion:
p_dict[c] -= 1
if p_dict[c] == 0:
del p_dict[c]
answer = list(p_dict.keys()).pop()
return answer
728x90