[알고리즘] 백준 1065 한수

hyelimchoi1223·2021년 2월 21일
0

[Study] 알고리즘

목록 보기
12/19
post-thumbnail

문제

어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오.

  • 입력
    첫째 줄에 1,000보다 작거나 같은 자연수 N이 주어진다.

내 풀이

def hansu(a):
    result_array = list(map(int, str(a)))
    gap_array = []
    if result_array.__len__() == 1:
        gap_array = [i for i in result_array]
    else:
        gap_array = [result_array[_-1]-result_array[_]
                     for _ in range(1, result_array.__len__())]
    return list(set(gap_array)).__len__()


n = int(input())
result = 0
for _ in range(1, n+1):
    count = hansu(_)
    if count == 1:
        result += 1

print(result)

출처

[백준] 1065번: 한수

0개의 댓글