Problem
https://www.acmicpc.net/problem/5622
Solution
code 1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
def dial_time(letter):
if 'A'<=letter<='C':
return 3
elif 'D'<=letter<='F':
return 4
elif 'G'<=letter<='I':
return 5
elif 'J'<=letter<='L':
return 6
elif 'M'<=letter<='O':
return 7
elif 'P'<=letter<='S':
return 8
elif 'T'<=letter<='V':
return 9
elif 'W'<=letter<='Z':
return 10
total_time = 0
dial_word = input()
for i in dial_word:
total_time += dial_time(i)
print(total_time)
첫번째 방법은 각 문자를 if문으로 구분하여 시간을 반환하는 함수를 정의하는 것이다.
code 2
1
2
3
4
5
6
7
8
9
dial_list = ['ABC', 'DEF', 'GHI', 'JKL', 'MNO', 'PQRS', 'TUV', 'WXYZ']
a = input()
total_time = 0
for j in a:
for i in range(len(dial_list)):
if j in dial_list[i]:
total_time += i+3
print(total_time)
두번째 방법은 리스트를 활용하는 방법이다. 각 번호에 해당하는 시간이 등차수열을 이루기 때문에 효율적으로 해결이 가능하다.