📌 문제
![](https://velog.velcdn.com/images/hrzo1617/post/371b4bba-92d0-4e6c-9f4e-13fea23d4b4f/image.png)
💯 정답
def hansu(num):
cnt = 0 // 한수인 수의 갯수를 세는 count 변수
for i in range(1, num+1):
numbers = list(map(int,str(i))) // i 각 자리를 분리하고 다시 int형으로
if i < 100:
cnt += 1
elif numbers[1]-numbers[0] == numbers[2]-numbers[1]:
cnt += 1
return cnt
n = int(input())
print(hansu(n))
📝 설명
• 각 자릿수가 등차수열을 이루는 수를 '한수'라고 한다.
• 따라서 두 자릿수인 수는 모두 '한수'이다.
• 세 자릿수인 수는 ex) abc일때 b-a = c-b 이면 '한수'의 조건을 성립한다.
• '한수'인지 판단하는 함수를 만들고 입력받은 수 n을 이 함수에 넣어 판단해보자.
• 1 ~ num까지의 수를 검사한다.
• str 형태로 만들어 각 자리를 분리하고 다시 int형으로 만들어 list인 numbers에 저장한다.
• 만약 이 수가 100 미만 즉, 두자릿수면 모두 한수이므로 +1씩 모두 카운트한다.
• 세자릿수일 경우 각 자릿수의 차가 동일한 경우에만 +1을 카운트하고 카운트한 값을 반환한다.
• print에서는 함수를 호출하기만 하면 된다.