알고리즘
프로그래머스 Lv1. Hash (파이썬 / Python)
hundredeuk2
2022. 9. 22. 15:52
728x90
프로그래머스 문제 중 해시문제 Lv1을 풀었다.
내 풀이와는 다르게 딕셔너리 값을 뺄 수 있다는 코드를 보고 알고리즘 공부를 내 코드를 완료했다는게 중요한게 아니라 더 효율적인 코드를 보고 공부해야겠다는 생각에 시작했다.
우선 문제에 대한 나의 코드는 이렇다
def solution(participant, completion):
answer = ''
dic = {}
for i in participant:
if i in dic:
dic[i] += 1
else:
dic[i] = 1
for c in completion:
dic[c] -= 1
for k in dic:
if dic[k] >= 1:
answer += k
break
return answer
많이 길 뿐만 아니라 비효율적이다.
Collections의 Counter를 쓰면 Dict끼리 값을 뺄 수 있다는 사실을 알았다.
from collections import Counter
collections.Counter(x) - collections.Counter(y)
를 하게 되면 x에서 y를 뺀 딕셔너리 값이 나온다.