출처: https://www.acmicpc.net/problem/5622
풀이 :
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 를 더해주면 답이 나온다.
'코딩테스트 > 기초' 카테고리의 다른 글
백준 1712 손익분기점 - python (0) | 2022.01.06 |
---|---|
백준 2941 크로아티아 알파벳 - python (0) | 2022.01.03 |
백준 1152 단어의 개수 (0) | 2022.01.02 |
백준 1157 단어공부 - python (0) | 2022.01.02 |
백준 2675 문자열 반복 - python (0) | 2022.01.02 |