BOJ/Python

[BOJ/백준] 1065 - 한수 (Python)

tjdms4327 2025. 5. 7. 22:57

문제

문제링크

어떤 양의 정수 X의 각 자리수가 등차수열을 이루면, 그 수는 한수이다.

N보다 작거나 같은 한수의 개수를 구하라. 

 

풀이

수가 한자리이거나 두자리일 경우는 모두 각 자리가 등차수열을 이룬다.

세자리수일 경우 각 자리는 수를 100으로 나눈 몫, 10으로 나눈 몫을 10으로 나눈 나머지, 10으로 나눈 나머지이다.

등차 수열(a+c=2*b)일 경우에만 count를 증가시킨다.

입력이 1000까지이므로 네자리수를 고려하지 않고 1000은 따로 처리를 해주는데, 1000은 등차수열이 아니므로 넘어간다.

 

코드

N = int(input())

count = 0
for i in range(1, N + 1):
    if i < 100:
        count += 1
    elif i==1000: continue
    else:
        a = i // 100
        b = (i // 10) % 10
        c = i % 10
        if a+c == 2*b:
            count += 1
print(count)