알고리즘, 자료구조/백준
[Python/파이썬] 백준 알고리즘 1065번 / 한수
동김
2022. 10. 8. 00:12
[Python/파이썬] 백준 알고리즘 1065번 / 한수
문제 링크: https://www.acmicpc.net/problem/1065
1065번: 한수
어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나
www.acmicpc.net
최종 소스코드
N = int(input())
cnt = 99
if N <100:
print(N)
else:
for i in range(100, N+1):
I = str(i)
if int(I[1])-int(I[0]) == int(I[2])-int(I[1]):
cnt += 1
print(cnt)
<풀이>
문제에 나온 '한수' 자체를 이해하는 게 중요하다. 세 자리보다 작은 양의 정수는 모두 한수이다.
문제에서 N의 범위를 1000보다 작거나 같다고 했는데 1000은 한수가 아니므로 세 자릿수의 양의 정수만 고려하면 된다. 이때 세 자릿수의 정수를 str()로 문자 처리하여 각 자리가 등차수열을 이루는지 확인하여 한수의 개수를 찾아주면 된다.