https://www.acmicpc.net/problem/5622
숫자로 된 번호가 주어질 때,
그 번호를 다 누르기 위한 최소 시간을 구하는 문제이다.
하나의 번호를 누르면 다시 처음 위치로 돌아가기 때문에,
최소 시간은 번호를 실수 없이 누르는 단순한 상황이라고 볼 수 있다.
예를 들어, WA라는 번호를 누르기 위한 최소 시간은 다음과 같다.
[1] W를 누르기 위한 최소 시간: 10초
[2] A를 누르기 위한 최소 시간: 3초
[3] WA를 누르기 위한 최소 시간: 10 + 3 = 13초
알파벳이 26개만 있기도 하고,
특별한 규칙이 없는 문제의 알파벳-숫자 매칭을 고려해서..
각 알파벳을 누르기 위해 필요한 최소 시간을 각각 딕셔너리에 저장한 뒤,
입력으로 들어온 알파벳을 하나씩 확인하며 총 시간을 구했다.
코드(정답)는 다음과 같다.
import sys
min_time = {
"A": 3, "B": 3, "C": 3,
"D": 4, "E": 4, "F": 4,
"G": 5, "H": 5, "I": 5,
"J": 6, "K": 6, "L": 6,
"M": 7, "N": 7, "O": 7,
"P": 8, "Q": 8, "R": 8, "S": 8,
"T": 9, "U": 9, "V": 9,
"W": 10, "X": 10, "Y": 10, "Z": 10
}
word = sys.stdin.readline().rstrip()
ans = 0
for ch in word:
ans += min_time[ch]
print(ans)