728x90
반응형
문제출처: https://school.programmers.co.kr/learn/courses/30/lessons/160586
풀이:
from collections import defaultdict
def solution(keymap, targets):
ans = []
value = defaultdict(int)
for key in keymap:
for k,v in enumerate(key):
if not value[v]:
value[v] = k + 1
else:
value[v] = min(value[v], k+1)
for target in targets:
res = 0
for t in target:
if t not in value:
res = -1
break
res += value[t]
ans.append(res)
return ans
dic 에 키 값이 없으면 에러가 난다, 이걸 개선한게 defaultdict
k 는 인덱스, 1번버튼을 몇번누르는지 2번버튼을 몇번 누르는지를 말한다,
각 알파벳별로 최솟눌러야하는 횟수가 들어간다.
두 번째 포문을 돌면서 찾는 알파벳이 있으면 value에서 찾아서 더해주고
없으면 -1 을 넣어주고 포문종료
리스트에 담아서 리턴
반응형
댓글