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
'코딩 > 백준' 카테고리의 다른 글
[백준] 11720번 숫자의 합 파이썬 풀이 코딩테스트 연습 문자열 브론즈2 (0) | 2021.12.22 |
---|---|
[백준] 11654번 아스키 코드 파이썬 풀이 코딩테스트 연습 문자열 브론즈5 (0) | 2021.12.22 |
[백준] 4673번 셀프 넘버 파이썬 풀이 코딩테스트 연습 함수 실버5 (0) | 2021.12.17 |
[백준] 15596번 정수 N개의 합 파이썬 풀이 코딩테스트 연습 함수 브론즈2 (0) | 2021.12.17 |
[백준] 4344번 평균은 넘겠지 파이썬 풀이 코딩테스트 연습 1차원 배열 (0) | 2021.12.14 |