개발 연습장/백준 문제풀이

[파이썬, Python] 백준 1065: 한수

LooanCheong 2022. 12. 11. 19:46
반응형

문제

https://www.acmicpc.net/problem/1065

 

1065번: 한수

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

www.acmicpc.net

코드

N = int(input())
sequence_num = set()

for i in range(1,N+1):
    num = str(i)
    if len(num) <= 2:
        sequence_num.add(i)
    elif len(num) == 3:
        if (int(num[1])-int(num[0])) == (int(num[2])-int(num[1])):
            sequence_num.add(i)
        else:
            continue
    else:
        exit   
print(len(sequence_num))

설명

우선 n을 입력받고, 등차수열을 이루는 수를 넣어줄 sequence_num을 만들어준다.
이때, set으로 만들어주어 중복을 피한다.

n까지의 반복문을 만들어서 수를 확인해야 하는데,
1000보다 작은 자연수 중 2자리의 자연수는 무조건 등차수열 이므로 무조건 등차수열 리스트에 넣어준다.
이후 3자리의 자연수 중 두 번째 자리에서 첫 번째 자리를 뺀 값이 세 번째 자리에서 두 번째 자리를 뺀 값과 같으면 등차수열이므로 리스트에 추가해준다.

이후 sequence_num의 개수를 출력해준다.

반응형