728x90
반응형
문제출처: https://school.programmers.co.kr/learn/courses/30/lessons/160586
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이:
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 을 넣어주고 포문종료
리스트에 담아서 리턴
반응형
댓글