반응형
풀이
- keymap으로 받아오는 자판을 딕셔너리로 각 문자를 할당 후
- 해당 순서에 따른 인덱스값을 딕셔너리의 값으로 할당
- 가장 적게 누르기를 원하기에 최소값을 넣어주기
- 이후 targets에 해당하는 문자를 입력하여 cnt 변수에 누적합 적용
- 만약 특정문자가 없는 경우 반복문 탈출하여 해결
def solution(keymap, targets):
dic = dict()
result = []
for keys in keymap:
for idx,key in enumerate(keys):
if dic.get(key): dic[key] = min(dic.get(key),idx+1)
else: dic[key] = idx+1
for tg in targets:
cnt = 0
for i in tg:
if dic.get(i): cnt += dic[i]
else:
cnt = 0
break
if cnt == 0: result.append(-1)
else: result.append(cnt)
return result
'알고리즘' 카테고리의 다른 글
[프로그래머스, 파이썬] 뒤에 있는 큰 수 찾기 (0) | 2024.03.05 |
---|---|
[프로그래머스, 파이썬] 체육복 (0) | 2024.03.05 |
[프로그래머스, 파이썬] K번째수 (0) | 2024.03.04 |
[프로그래머스, 파이썬] 코드 처리하기 (0) | 2024.03.04 |
[프로그래머스, 파이썬] 배열 조각하기 (0) | 2024.03.04 |