코딩/백준

[백준] 1065번 한수 파이썬 풀이 코딩테스트 연습 함수 실버4

thisisjade 2021. 12. 18. 16:13
728x90

문제

어떤 양의 정수 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

 

예제 입력 5

500

 

예제 출력 5

119

 

정답

num = int(input())

hansu = 0
for i in range(1, num+1):
    num_list = list(map(int, str(i)))
    if i < 100:
        hansu += 1
    elif num_list[0]-num_list[1] == num_list[1]-num_list[2]:
        hansu += 1
print(hansu)

문제를 이해하는게 오래걸리는 문제였습니다.

100미만일경우에는 전부다 한수에 포함이 되고 100이상 인수만 백,십,일 자리의 수를 비교해주는 방식으로 진행하였습니다.

728x90