본문 바로가기

프로그래밍/백준

Python 백준 1065 한수

문제-
어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오. 

입력-
첫째 줄에 1,000보다 작거나 같은 자연수 N이 주어진다.

출력-
첫째 줄에 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력한다.

 

해설-
99이하의 숫자들은 한수이고, 100 이상의 숫자들은 각 자릿수의 차가 일정하여야 하므로 조건문을 소스코드와 같이 걸어준다.

소스코드-
def hansu(a):
    array = list(str(a))
    if(a<=99):
        return 1
    elif(int(int(array[0]) - int(array[1])) == int(int(array[1]) - int(array[2]))):
        return 1
    else:
        return 0
cnt = 0
user = int(input())
for i in range (1, user+1):
    if(hansu(i)==1):
        cnt += 1
print(cnt)