728x90
- 문제
어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오.
- 입력
첫째 줄에 1,000보다 작거나 같은 자연수 N이 주어진다.
- 출력
첫째 줄에 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력한다.
- 코드
def solution():
num = int(input())
cnt = 0
# 값이 100미만이면 모든 수가 등차수열
# If number under 100, all number is arithmetic sequence
if num < 100:
cnt = num
# 값이 100초과라면 세 수가 등차수열일때 공식을 적용하면 된다
# a, b, c가 있다면 가운데 수(b)의 2배가 양 끝의 수(a, c)의 합과 같다.
# If number is over 100, apply arithmetic sequence formula
# example a, b, c -> 2*b = a+c
else:
# 기본 숫자
# default number
cnt = 99
for i in range(100, num+1):
a = i // 100
b = i // 10 % 10
c = i % 10
if 2 * b == a + c:
cnt += 1
print(cnt)
solution()
- 출처
728x90
'알고리즘' 카테고리의 다른 글
백준 2839번: 설탕 배달 (python, 파이썬) (0) | 2020.10.07 |
---|---|
백준 6603번: 로또 (python, 파이썬) (0) | 2020.10.06 |
백준 15649번: N과 M (python, 파이썬) (2) | 2020.10.05 |
백준 2309번: 일곱 난쟁이 (python, 파이썬) (0) | 2020.10.04 |
백준 10174번: 팰린드롬 (python, 파이썬) (0) | 2020.10.03 |
댓글