[Python_한수]
한수의 갯수 출력하기
<STUDY>
❔한수
- 각 자리가 등차수열을 이루는 수.
📢 문제 📢
양의 정수 N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램 작성하기
❗아이디어
- 한수 구하는 함수 정의 : 모든 수가 등차수열인지 확인하기 위해서 첫 번쨰, 두 번째 숫자의 등차수열 식을 구한 후 나머지 값이 그에 맞는지 확인한다.
- 정의한 함수로 N이하의 값을 출력한다.
1. 한수 구하는 함수 정의하기
# 한수 구하는 함수 정의
def h(x):
if x < 10:
return x
else:
a = str(x)
d = int(a[1]) - int(a[0]) # 공차
number = ""
for n in range(len(a)): # 등차 수열 확인
if int(a[n]) == int(a[0]) + n * d:
number += a[n]
if x == int(number): return x
- 각 자리수가 등차수열을 이루는지 확인하기 위해 등차수열 구하는 식을 먼저 정의한다.
- 각 자리 수가 식에 대입한 값과 일치하면 number에 추가한다.
- 원래 숫자와 number이 일치하는지 확인한다.
2. 개수 구하기
N = int(input())
li = []
for i in range(1, N + 1):
if type(h(i)) == int: # 한수가 아닌 값은 "None"으로 나오기 때문에 자료형이 정수인 요소만 추가
li.append(h(i))
print(len(li))
- 정수 N을 input()으로 받은 후 int를 사용하여 정수로 변환.
- 빈 리스트(li)를 만들고 N이하인 한수를 append한다.
- 위에서 정의한 함수(h)를 사용하여 N보다 큰 수는 "None"으로 출력되므로 자료형이 정수인 것만 추가한다.
🔆백준 코딩 1065번🔆
ez1n - Overview
Study -ing. ez1n has 5 repositories available. Follow their code on GitHub.
github.com
'STUDY > Algorithm' 카테고리의 다른 글
[백준코딩_파이썬] 1316번_그룹 단어 체커 (0) | 2022.04.03 |
---|---|
[백준코딩_파이썬] 2581번_소수의 합과 최솟값 (0) | 2022.03.30 |
[백준코딩_파이썬] 2893번_설탕배달 (0) | 2022.03.28 |
[백준코딩_파이썬] 10951번_A+B / 종결규칙이 없는경우 (0) | 2022.03.26 |
[백준코딩_파이썬] 8958번_OX 퀴즈 (0) | 2022.03.24 |