백준 1065 한수 (Python / 파이썬)

링딩딩 코딩딩·2023년 7월 16일
0

Algorithm

목록 보기
2/5

본 글은 작성자가 직접 푼 코드를 바탕으로 Chat-GPT를 활용하여 포스팅한 글입니다.

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

문제

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

입력

  • 정수 N (1 ≤ N ≤ 1,000)

출력

  • 1보다 크거나 같고, N보다 작거나 같은 한수의 개수

해결 방법

주어진 문제를 해결하기 위해서는 다음과 같은 방법을 사용할 수 있다.

  1. 주어진 수 N보다 작거나 같은 수 중에서 한수인지를 판별한다.
  2. 한수의 개수를 카운트한다.
  3. 카운트된 개수를 출력한다.
n = int(input())

cnt = 99
if n < 100 :
    print(n)
else:
    for i in range(100, n+1):
        num = str(i)
        gap = int(num[0]) - int(num[1])
        status = False
        for j in range(1,len(num)-1):
            if int(num[j]) - int(num[j+1]) != gap:
                status = False
                break
            else:

                status = True
        if status:
            cnt += 1
    print(cnt)

주어진 코드에서는 입력된 수 N에 대해서 한수인지를 판별하고, 카운트하는 로직을 포함하고 있다.

  • 입력으로 주어진 수 N보다 작거나 같은 범위에서 한수의 개수를 찾는다.
  • 각 수를 문자열로 변환하여 각 자리의 숫자들의 차이를 계산한다.
  • 계산된 차이가 일정하지 않으면 한수가 아니므로, 반복문을 중단하고 다음 수로 넘어간다.
  • 한수라면 카운트를 증가시킨다.
  • 마지막으로 카운트된 개수를 출력한다.

0개의 댓글