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)