코딩/공부

[Python] 백준 5622번 - 다이얼

취미니스트 2023. 10. 12. 19:21
728x90
반응형

문제

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

 

문자열 입력

합을 계산하기 위한 변수 생성

각 문자의 위치 정보를 찾기 위한 리스트 생성

- 해당 리스트에 저장되어있는 숫자는 (아스키 - 65) 값을 기준으로 3개 4개씩 묶었을 때 다이얼에 들어가 있는 영문자의 개수 누적합

s = input()
add = 0
l = [3, 6, 9, 12, 15, 19, 22, 26]

문자를 하나씩 가져오며 반복

문자 - 65 한 값을 저장하고 리스트 내에 저장되어 있는 값보다 최초로 작아지는 위치(인덱스)를 찾기

찾은 후 인덱스 번호와 3을 더해 다이얼에 해당하는 숫자를 만들어줌

그 숫자를 누적하여 더해줌

그 후 출력

for c in s:
    n = ord(c) - 65
    for i in range(len(l)):
        if n < l[i]:
            n = i + 3
            break
    add += n
print(add)

전체 코드

s = input()
add = 0
l = [3, 6, 9, 12, 15, 19, 22, 26]
for c in s:
    n = ord(c) - 65
    for i in range(len(l)):
        if n < l[i]:
            n = i + 3
            break
    add += n
print(add)
728x90
반응형