본문 바로가기
카테고리 없음

[백준 1065번] 파이썬(python) 함수 I 한수

by MD.Kang 2021. 4. 16.

문제

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

입력

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

출력

첫째 줄에 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력한다.

예제 입력 1 

110

예제 출력 1

99

예제 입력 2

1

예제 출력 2

1

예제 입력 3

210

예제 출력 3

105

예제 입력 4

1000

예제 출력 4

144

 

 

num = input()
han = 0
for n in range(1, num+1):
    if n <= 99:
        han += 1

    else:
        nums = list(map(int, str(n)))
        if nums[0] - nums[1] == nums[1] - nums[2]:
            han += 1
            

 

 

알았던 내용

 

 

몰랐던 내용

이해부터가 쉽지 않은 문제이다. 등차수열을 토대로 만든 문제이다. 등차수열이라 함은 연속된 두 개의 수의 차이가 일정한 수열을 가르키는데, 지정한 범위 안에서 수의 차이가 있다는 것이다. 

 

배운 내용

 

이해를 잘 못하니, 무엇으로 활용해야할지 도무지 새로운 생각이 떠오르지 않는다. 여러번 반복해서 읽어보고 이해를 시도해봐야겠다.