def is_hannum(num):
global answer
num = str(num) ; isittrue=True
gap = int(num[1])-int(num[0])
for i in range(1,len(num)-1):
if int(num[i+1])-int(num[i])!=gap:
isittrue=False
break
if isittrue:
answer += 1
num = int(input())
if num < 100:
print(num)
else:
answer = 99
for hannum in range(100,num+1):
is_hannum(hannum)
print(answer)
# print(len(an))
풀이
자리수마다 같은 간격을 가지는 수를 “한수”라고 한다고 한다. 수학 전공인데도 처음 들어봤다..
처음에는 1→ 12 → 123 → 1234 이런식으로 구현하는건가 싶었는데, 최대 num이 1000이라 그렇게 하지 않아도 시간 조건에는 걸릴 것처럼 보이지 않았다.
그래서 if문으로 100을 넘었을 경우와 안 넘었을 경우를 먼저 나누어 둔 다음, 100을 넘었을 경우에만 자릿수 간격을 확인하는 함수를 짜서 문제를 풀이했다.