문제
문제 이해
다이얼을 자세히 보면
2는 ABC
3은 DEF
...
9는 WXYZ
로 되어있습니다.
1과 0 은 고려 안하는거 같습니다.
다이얼의 숫자에 걸리는 시간은 숫자 + 1 입니다.
ABC, DEF... WXYZ 까지 모두 리스트로 해서 각 경우가 나올 때마다 나오는 시간을 더하는 방법이 있습니다.
코드
import string
alphabet = string.ascii_uppercase
count = 0
word = input().upper()
for i in word:
if(i in alphabet[:3]):
count += 3
elif(i in alphabet[3:6]):
count += 4
elif(i in alphabet[6:9]):
count += 5
elif(i in alphabet[9:12]):
count += 6
elif(i in alphabet[12:15]):
count += 7
elif(i in alphabet[15:19]):
count += 8
elif(i in alphabet[19:22]):
count += 9
elif(i in alphabet[22:26]):
count += 10
print(count)
각 경우를 string으로 잘라서 만들어 봣습니다.
다른 사람의 코드를 보았습니다.
dial = ['ABC', 'DEF', 'GHI', 'JKL', 'MNO', 'PQRS', 'TUV', 'WXYZ']
a = input()
total = 0
for j in range(len(a)):
for i in dial:
if a[j] in i:
total += dial.index(i)+3
print(total)
리스트 형태로 만들서 입력값과 리스트에 있는 값이 맞으면
리스트의 인덱스를 찾아서 +3을 해주면 됩니다.
훨씬 더 간단한거 같습니다.
728x90
'알고리즘 > 백준알고리즘' 카테고리의 다른 글
[백준 알고리즘/Python3] 1316 그룹 단어 체커 (0) | 2021.09.01 |
---|---|
[백준 알고리즘/Python3] 2941 크로아티아 알파벳 (0) | 2021.08.31 |
[백준 알고리즘/Python3] 1157 단어 공부 (1) | 2021.08.27 |
[백준 알고리즘/Python3] 10809 알파벳 찾기 (0) | 2021.08.26 |
[백준 알고리즘/Python3] 1065 한수 (0) | 2021.08.23 |