1<=키 개수<=100 같은 문자가 여러번 할당, 키 하나에 같은 문자 여러번 할당 할당 안된 경우
최소 몇번 눌러야 문자열 작성 가능한지 => 완전 탐색
keymap = ["ABACD", "BCEFD"] 0번키 누르면 나오는 배열: ABACD 1번키 누르면 나오는 배열: BCEFD -> ABCD (0,1), (1,1), (1,2), (0,5) => 9 특정 문자가 특정 키에서 가장 먼저 나오는 것을 찾고 그 인덱스를 반환
없는 경우 -1 return
lst = [] keymap => dic으로 만들고 target을 돌면서 for words in target: cnt = 0 for word in words: word 가 있는지 없으면 -1 return 있으면 두 리스트 중에 인덱스 값이 가장 작은 값을 cnt + lst.append(cnt)
targets = ["ABCD","AABB"]
def solution(keymap, targets):
# keymap을 딕셔너리로 만들기
key_dic = {}
for i in keymap:
for key in i:
if key not in key_dic:
key_dic[key] = i.index(key)
else:
key_dic[key] = min(key_dic[key], i.index(key))
# print(key_dic)
result_dic = []
for target in targets:
cnt = 0
for search_char in target:
# print(search_char, key_dic)
if search_char in key_dic:
cnt += key_dic[search_char]+1
else:
cnt = -1
break
result_dic.append(cnt)
return result_dic