업데이트:

태그: , , ,

카테고리:

내 코드

import sys
n = sys.stdin.readline().rstrip()

cycle = 0

def d(n):
    global cycle
    a = list(map(int,str(n)))
    if a[0] - a[1] == a[1] - a[-1]:
        cycle += 1
            
            
for i in range(1,int(n)+1):
    if i < 100:
        cycle += 1
    else:
        d(i)
    
print(cycle)

문제 정의

양의 정수 x의 각 자리가 등차수열을 이루는 것을 한수라고 한다.
n이 주어졌을때 1보다 크거나 같고 n보다 작은 한수의 개수를 출력하는 프로그램을 만들어야한다.

한수를 검증하는 함수를 만들고, 입력받은 n을 range로 만들어 범위 내의 한수를 찾을 때마다 cycle을 1씩 높여 개수를 구하자.


함수 정의

한수는 각 자리 숫자의 차이가 일정한 숫자를 의미한다.
cycle을 global선언 후, 한수에 해당하면 cycle이 1씩 증가한다.

def d(n):
    global cycle
    a = list(map(int,str(n)))
    if a[0] - a[1] == a[1] - a[-1]:
        cycle += 1


cycle 계산

for i in range(1,int(n)+1):
    if i < 100:
        cycle += 1
    else:
        d(i)

1부터 n까지의 숫자에 대해서 한수검증을 한다.
100미만의 모든 양수는 한수이기때문에 만약 i가 100보다 작다면
cycle을 1씩 증가시킨다.

100미만이 아닐 경우에는 함수로 한수를 검증해 cycle을 증가시킨다.

댓글남기기