import sys
input = sys.stdin.readline
N = int(input().strip())
result = 0
if N <= 99:
# 세자리수 이하면 해당 숫자가 답
result = N
else:
result = 99
for n in range(100, N+1):
is_ok = True
string_n = str(n)
pivot = int(string_n[0]) - int(string_n[1])
for i in range(1, len(string_n)-1):
term = int(string_n[i]) - int(string_n[i+1])
if term != pivot:
is_ok = False
break
if is_ok == True:
result += 1
sys.stdout.write(f"{result}\\n")
예시를 떠올리면서 생각해보면 if else의 분기 조건문을 금방 떠올릴 수 있습니다(출력 예시를 함께 보면서). 세자리수 이하에 대해서는 모두 한수로 취급하고 있습니다.
세자리 수부터는 N까지 순회하면서 100 ~ N 사이의 숫자들에 대해 한수인지 체크해야합니다. 인덱스0과 인덱스1의 차이를 구해 차이 판단 기준으로 설정합니다. 인덱스1부터 나머지 인덱스들에 대해서 인접한 값의 차이를 구하고 이를 pivot과 비교해 만약 한 부분이라도 등차를 이루지 않는다면 is_ok를 False로 바꿉니다. 만약 is_ok가 True를 유지하고 있다면 해당 숫자는 한수라는 소리이므로, result+1을 합니다.