Home [Python] 백준 5622번 : 다이얼
Post
Cancel

[Python] 백준 5622번 : 다이얼

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)

두번째 방법은 리스트를 활용하는 방법이다. 각 번호에 해당하는 시간이 등차수열을 이루기 때문에 효율적으로 해결이 가능하다.

Ref.

https://j-remind.tistory.com/76

This post is licensed under CC BY 4.0 by the author.

[Python] 백준 2908번 : 상수

[Python] 백준 2941번 : 크로아티아 알파벳