문제설명
양의 정수 X의 각 자리가 등차수열을 이루면, 그 수를 한수라고 한다.(ex. 123,147은 각 자리가 등차수열을 이루므로 한수이다.) N을 입력받고 1이상이면서 N이하인 숫자들중 한수의 개수를 출력하는 문제입니다.
작동 순서
1. n을 입력받는다.
2. 1부터 n까지를 i에 대입하여 반복문을 실행한다.
3. i를 문자형으로 변환하여 길이를 확인한다.
4. 길이가 1이나 2인 숫자는 무조건 등차수열로 판정하여 count에 1을 더해준다.
5. 길이가 3이상인 경우 각 자리의 수를 비교하며 등차수열인경우 count에 1을 더해준다.
6. 찾은 한수의 개수를 출력한다.
소스코드
def solution(n):
count = 0
for i in range(1, n+1):
word = str(i)
if len(word) > 2:
diff = int(word[1]) - int(word[0])
for j in range(len(word)-1):
if int(word[j + 1]) - int(word[j]) != diff:
break
if j == len(word) - 2:
count += 1
else:
count += 1
print(count)
solution(int(input()))