해당 문제를 풀기위해 각 키별로 타이핑이 가장 적게드는 값만 dic에 저장을 해서 targets에 있는 값을 dic의 value로 치환해서 그 값들을 모두 더하면 targets에 있는 타이핑을 하기위해 필요한 타이핑이 나올거라고 생각을 했다
그래서 먼저 keymap에있는 알파벳을 for문을 돌려서 enumerate를 통해서 key : index 방식으로 저장이 되게 했다
dic = {}
for keymaps in keymap:
for i,key in enumerate(keymaps,1):
if not dic.get(key) or dic.get(key,0) > i:
dic[key]=i
이방식으로 keymaps에 있는 값들을 전부 dictionary에 저장을 해서 이제 targets에 있는 값하고 비교를 해서 얼마나 타이핑이 필요한지 계산을 했다
answer = []
for target in targets:
count=0
for typing in target:
if not dic.get(typing):
answer.append(-1)
break
count+=dic.get(typing)
else:
answer.append(count)
2차원 배열의 값을 전부 받아내기 위해서 count를 선언해서 각 배열마다 총 타이핑을count에 저장을해서 answer에 append로 밀어넣는 방법을 취하고 만약 없는 경우에는 answer에 -1을 밀어넣고 for문을 break하게 해서 불필요한 반복을 줄였다