https://www.acmicpc.net/problem/1065
def flag(n):
n_list = list(str(n))
if len(n_list) > 2 :
d = int(n_list[1]) - int(n_list[0])
m = int(n_list[1])
for i in n_list[2:]:
if int(i)-m != d :
return 0
else :
m = i
return 1
n = int(input())
cnt = 0
for i in range(n):
if flag(i+1) == 1 :
cnt += 1
print(cnt)
"한수"의 개념을 이해하는게 가장 오래 걸렸던,,!!
각 자릿수들이 모두 등차수열을 이루면 한수라고 한다
예를 들면 1000은 1, 0, 0, 0이 등차수열을 안 이루니까 한수가 아님
234는 2, 3, 4가 등차수열을 이루니까(공차가 1) 한수임
이에 따라 한 자리수(1~9), 두 자리수(10~99)는 모두 한수다!
(비교할 숫자가 1, 2개 밖에 없으니까)
'알고리즘 > 백준' 카테고리의 다른 글
백준 10809: 알파벳 찾기 (Python) (0) | 2021.08.25 |
---|---|
백준 11654: 아스키 코드 (Python) (0) | 2021.08.25 |
백준 4673: 셀프 넘버 (Python) (0) | 2021.08.24 |
백준 4344: 평균은 넘겠지 (Python) (0) | 2021.08.24 |
백준 3052: 나머지 (Python) (0) | 2021.08.24 |