함수 - #1054: 한수 python3
1065번: 한수
어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 ��
www.acmicpc.net
문제
어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다.
등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다.
N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오.
풀이
def gap(x, i) : # i번째 자리와 그 다음 자리의 차이를 계산하는 함수
return int(x[i]) - int(x[i+1])
def calc(n) :
count = 0
for x in range(1, n+1) : # 1~n까지의 x
x = str(x)
judge = 0
for j in range(len(x)-1) : # len(x)-1은 gap()에서 그 다음 자리까지 계산하기 때문
if gap(x, 0) == gap(x, j) : # 첫번째, 두번째 숫자와 gap이 j, j+1 자리의 gap을 비교
judge += 1
if judge == len(x)-1 : # len(x)-1개의 judge가 쌓이면 등차수열이다.
count += 1
print(count)
n = int(input())
calc(n)
한수임을 증명하는 함수와
한수의 개수를 연산하는 함수를 혼용했습니다.
'BAEKJOON > Python3' 카테고리의 다른 글
| 백준 #11720: 숫자의 합 (0) | 2020.08.19 |
|---|---|
| 백준 #11654: 아스키 코드 (0) | 2020.08.19 |
| 백준 #4673: 셀프 넘버 (0) | 2020.08.19 |
| 백준 #15596: 정수 N개의 합 (0) | 2020.08.19 |
| 백준 #4344: 평균은 넘겠지 (0) | 2020.08.03 |