코딩테스트/기초

백준 5622 다이얼 - python

math_tbro 2022. 1. 3. 22:58

출처: https://www.acmicpc.net/problem/5622

 

5622번: 다이얼

첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 단어의 길이는 2보다 크거나 같고, 15보다 작거나 같다.

www.acmicpc.net

풀이 :

a = input()
group = ['ABC','DEF','GHI','JKL','MNO','PQRS','TUV','WXYZ']
ans = 0
for i in a:
    for j in group:
        if i in j:
             ans += group.index(j)

ans = 3*len(a) + ans
print(ans)

풀이가 좀 다른 사람들이랑 다를 거 같았는데 그냥 똑같아서 당황스럽다.

 

1 . input 과 group 으로 알파벳을 받아온다

이렇게 group으로 받아오면 값을 a와 비교해서 몇번째 인덱스에서 a가 저장되는지를 찾을 수 있기 때문에 저렇게 했다.

 

예를 들어 WA이면 W는 7번째 인덱스, A는 0번째 인덱스이다.  

 

2. if 문을 보면

WA가 있는데 W 부터 가져와서 각각 group에 하나하나 비교를 해보는 것이다 

그래서 딱 'WXYZ' 여기에 걸리면 W가 여기에 속하므로 group.inex(j) = 7이다.

 

3. 문제를 다시보면 1은 2초 2는 3초 9는 10초 씩 +1을 더해서 출력해줘야한다.

위에 group의 index는 심지어 0부터 시작해서 +2를 더해줘야하니까 

총 +3을 숫자마다 더해주면 된다.

숫자의 개수는 3 * len(a) 로 구할 수 있고 여기에 ans 를 더해주면 답이 나온다.