https://www.acmicpc.net/problem/1065

 

 

1065번: 한수

어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나

www.acmicpc.net

 


이거 진짜 무슨말인지 모르겠어서 30분동안 고민한듯 ㅋㅋㅋ  

 

100미만의 숫자는 어차피 비교할 대상이 없기때문에 다 등차수열이라고 보면된다고 한다. 

 

두자리 숫자는 비교대상이 없기에 다 등차수열이고 100을찍으면 99가 나옴

 

210이면은 210까지의 등차가 동일한 숫자 예) 123 등차가 1 이므로, 135 등차가 2 이므로 

 

아무튼 코드 정답을 아래와 같다. 머리가 아프다

num = int(input())

hansu = 0
for i in range(1, num+1):
    num_list = list(map(int, str(i)))
    if i < 100:
        hansu += 1  
    elif num_list[0]-num_list[1] == num_list[1]-num_list[2]:
        hansu += 1  
print(hansu)

 

 

+ Recent posts