반응형
<풀이>
N = int(input())
if N < 100: # 1~99는 다 한수
print(N)
else:
cnt = 0
for i in range(100, N + 1):
i = list(map(int, str(i)))
if i[0] - i[1] == i[1] - i[2]:
cnt += 1
print(99 + cnt)
입력값 N이 100보다 작다면 1~99는 다 한수이므로 그대로 출력한다.
만약 100보다 크다면 100부터 N까지 for문을 돌며 각 자리수가 등차수열을 이루는 지 확인하고 등차수열을 이룬다면(한수라면) cnt를 하나 증가시킨다.
그리고 그 cnt에 1~99를 포함하는 99를 더해 출력한다.
<핵심 정리>
1. 정수 n의 각 자리수를 쪼개 리스트로 만들고 싶다면 list( map(int, str(n)) )하면 된다.
2. 등차수열 확인할 때는 두 수를 뺀 값을 비교하면 된다.
반응형
'Base > Algorithm Study' 카테고리의 다른 글
[Python/파이썬] 백준 알고리즘 2908번 - 상수 (0) | 2021.08.15 |
---|---|
[Python/파이썬] 백준 알고리즘 1152번 - 단어의 개수 (0) | 2021.08.15 |
[Python/파이썬] 백준 알고리즘 4673번 - 셀프 넘버 (0) | 2021.08.15 |
[Python/파이썬] 백준 알고리즘 1110번 - 더하기 사이클 (3) | 2021.08.14 |
[Python/파이썬] 백준 알고리즘 10951번 - A+B - 4 (0) | 2021.08.14 |