Coding Test/Baekjoon
[백준] 1065번 한수 - Python
라딘
2022. 9. 7. 16:36
1065번: 한수
어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나
www.acmicpc.net
https://www.acmicpc.net/problem/1065
문제
한수는 각 자리 수가 등차수열의 형태인 수입니다.
N을 입력받아 1보다 크고 N보다 작거나 같은 한수의 개수를 구하는 문제입니다.
이때 N은 1000보다 작거나 같은 자연수로 주어집니다.
아이디어
N이 최대 1000이므로 최대 4자리 수까지만 입력받을 수 있습니다.
또한 100미만의 수는 모두 한수가 되므로, 100부터 999까지의 수를 판별하는 것에 초점을 두었습니다.
N이 100부터 999 사이일 경우에는 각 자리 수를 리스트로 저장하고, 차이를 구하여 등차수열의 여부를 결정했습니다.
코드
N = int(input())
count = 99
if N<100:
print(N)
elif (N<1000):
for i in range(100, N+1):
list_N = list(map(int, list(str(i))))
if (list_N[0] - list_N[1] == list_N[1] - list_N[2]):
count +=1
print(count)
elif (N == 1000):
for j in range(100, 1000):
list_N = list(map(int, list(str(j))))
if (list_N[0] - list_N[1] == list_N[1] - list_N[2]):
count +=1
print(count)