http://acmicpc.net/problem/5622
{코드}
classify = ['ABC', 'DEF', 'GHI', 'JKL', 'MNO', 'PQRS', 'TUV', 'WXYZ']
s = input()
ans = 0
for c in s:
for idx, dial in enumerate(classify):
if c in dial:
ans += 3 + idx
break
print(ans)
{설명}
다음 표를 보면 알파벳을 문제의 다이얼과 같이 구분해서 리스트로 만들었을 때 인덱스와 걸리는 시간과의 관계를 알 수 있다.
알파벳 | 걸리는 시간 | 인덱스 | 구분 |
ABC | 3 | 0 | 0 + 3 |
DEF | 4 | 1 | 1 + 3 |
GHI | 5 | 2 | 2 + 3 |
JKL | 6 | 3 | 3 + 3 |
MNO | 7 | 4 | 4 + 3 |
PQRS | 8 | 5 | 5 + 3 |
TUV | 9 | 6 | 6 + 3 |
WXYZ | 10 | 7 | 7 + 3 |
이와 같이 인덱스에 3을 더하면 걸리는 시간을 구할 수 있으므로 각 알파벳이 어느 인덱스에 있는지 알고 그 인덱스에 3을 더한 값을 총합에 더해주면 된다.
'알고리즘 공부 > BOJ백준 풀이' 카테고리의 다른 글
[백준 1316번-파이썬/Python] 그룹 단어 체커 (0) | 2020.10.14 |
---|---|
[백준 2941번-파이썬/Python] 크로아티아 알파벳 (0) | 2020.10.14 |
[백준 2908번-파이썬/Python] 상수 (0) | 2020.10.13 |
[백준 1152번-파이썬/Python] 단어의 개수 (0) | 2020.10.13 |
[백준 1157번-파이썬/Python] 단어공부 (0) | 2020.10.13 |