본문 바로가기

알고리즘/백준알고리즘

[백준 알고리즘/Python3] 5622 다이얼

문제

 

 

문제 이해 

다이얼을 자세히 보면

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