알고리즘, 자료구조/백준

[Python/파이썬] 백준 알고리즘 1065번 / 한수

동김 2022. 10. 8. 00:12

[Python/파이썬] 백준 알고리즘 1065번 / 한수

 

문제 링크: https://www.acmicpc.net/problem/1065

 

1065번: 한수

어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나

www.acmicpc.net

 


최종 소스코드

N = int(input())
cnt = 99
if N <100:
    print(N)
else:
    for i in range(100, N+1):
        I = str(i)
        if int(I[1])-int(I[0]) == int(I[2])-int(I[1]):
            cnt += 1
    print(cnt)

 


<풀이>

문제에 나온 '한수' 자체를 이해하는 게 중요하다. 세 자리보다 작은 양의 정수는 모두 한수이다. 

문제에서 N의 범위를 1000보다 작거나 같다고 했는데 1000은 한수가 아니므로 세 자릿수의 양의 정수만 고려하면 된다. 이때 세 자릿수의 정수를 str()로 문자 처리하여 각 자리가 등차수열을 이루는지 확인하여 한수의 개수를 찾아주면 된다.