개발/algorithm
[백준 1065번] 한수 -python
zzi_on2
2022. 1. 29. 18:48
문제 링크
https://www.acmicpc.net/problem/1065
1065번: 한수
어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나
www.acmicpc.net
풀이
- N은 1000보다 작거나 같은 자연수이므로 완전 탐색 고려
- N이 한자리 수거나 두자리수면 모두 한수이므로 count += 1
- 네자리 수는 1000 밖에 없는데 1000은 한수가 아님
- 따라서 세자리 수만 고려 : 연속된 숫자들의 차 비교해서 같으면 count += 1
- 시작 숫자인 start를 1씩 증가 시켜주면서 N보다 작거나 같은 모든 숫자에 대해서 검사
n = int(input())
start = 1
count = 0
while True:
if start > n :
break
tmp = str(start)
if len(tmp) < 3:
count += 1
else :
if int(tmp[2])-int(tmp[1]) == int(tmp[1]) - int(tmp[0]):
count += 1
start += 1
print(count)