백준 1065 한수 파이썬
n = int(input())
han = 0
for i in range(1, n + 1):
if i < 100:
han += 1
else:
ns = list(map(int, str(i)))
print(ns)
if ns[0] - ns[1] == ns[1] - ns[2]:
han += 1
print(han)
1 ~ 100 까지는
비교할 숫자가 각 자릿수 밖에 없기 때문에, 모두 한수다.
for문으로 100 이전에는 계속 +1 해준다.
100 이후에는
각 자릿수를 스트링값으로 나누어 리스트에 저장하고,
스트링으로 나눈 리스트의 각 숫자값들을 계산하고 같으면 한수에 +1 해준다.
자릿수가 1000까지 밖에 없어서 이런 점으로 해결이 가능한데,
이렇게 카운팅하는 방식은 자릿수가 10억 20억까지 증가하면 빠르게 해결이 안 될 것 같은데,
다른 공식은 없는지 생각해볼 것.
'Back > Algorithm' 카테고리의 다른 글
[JavaScript] Queue (0) | 2022.09.07 |
---|---|
백준 1904 01타일 파이썬 (0) | 2021.03.21 |
프로그래머스 카카오 인형 뽑기 파이썬 (0) | 2021.03.18 |
백준 10870 피보나치수5 파이썬 (0) | 2021.03.17 |
Python 백준 1436 영화감독 (0) | 2021.03.15 |