문제
https://school.programmers.co.kr/learn/courses/30/lessons/160586
풀이
키맵의 알파벳 : (최소로 누른 수 즉 index) 형식으로 dict 자료형을 만든 다음에, 이를 순회하는 형식으로 문제를 풀이하면 된다.
from collections import defaultdict
def solution(keymaps, targets):
# 최소 숫자로 찾을 수 있는 dict형 만든다. 이를 case라고 지정한다.
case = defaultdict(int)
for keymap in keymaps:
for count, alphabet in enumerate(keymap):
if case[alphabet] == 0:
case[alphabet] = count + 1
elif case[alphabet] > count:
case[alphabet] = count + 1
answer = []
for target in targets:
count = 0
for alphabet in target:
# 만약 case을 순회하다가 값이 0이 나오면 이런 종류의 버튼이 없음으로
# answer 리스트에 -1을 추가한다.
if case[alphabet] == 0:
count = 0
break
else:
count += case[alphabet]
if count == 0:
answer.append(-1)
else:
answer.append(count)
return answer
'Algorithm > Programmers' 카테고리의 다른 글
프로그래머스 LV1 달리기 경주 (0) | 2023.05.19 |
---|---|
프로그래머스 LV1 둘만의 암호 (0) | 2023.05.19 |
프로그래머스 LV1 성격 유형 검사하기 (0) | 2023.05.17 |
프로그래머스 LV1 [1차] 비밀지도 (0) | 2023.05.17 |
프로그래머스 LV1 짝지어 제거하기 (0) | 2023.05.17 |