반응형
https://www.acmicpc.net/problem/1065
내 답안
cnt = 99
N = input()
if len(N) < 3:
print(N)
else:
for i in range(100, int(N) + 1):
if int(str(i)[0]) + int(str(i)[2]) == 2 * int(str(i)[1]):
cnt += 1
else:
continue
print(cnt)
처음 이 문제를 봤을 때 생각했던 건
1. 1부터 99까지는 모두 한수이다. --> 바로 N 출력
2. N의 범위는 1000까지이다. (모든 경우 따져도 시간 초과 x)
3. 세 자릿수 이상 일 때만 계산해 주면 된다.
따라서
N 이 세 자릿수 아래면 N 그대로 출력
if len(N) < 3:
print(N)
N이 세 자릿수 이상이면 --> 100부터 N까지 하나 각 자릿수가 등차수열인지 판별 (슬라이싱 이용)
else:
for i in range(100, int(N) + 1):
if int(str(i)[0]) + int(str(i)[2]) == 2 * int(str(i)[1]):
cnt += 1
else:
continue
print(cnt)
반응형
'BOJ > Python' 카테고리의 다른 글
백준 1138번 한 줄로 서기 파이썬 (0) | 2022.06.28 |
---|---|
백준 9095번 1, 2, 3 더하기 파이썬 (0) | 2022.06.27 |
백준 7785번 회사에 있는 사람 파이썬 (0) | 2022.06.06 |
백준 4673번 셀프 넘버 파이썬 (0) | 2022.04.27 |
백준 1912번 연속합 파이썬 (0) | 2022.04.22 |