반응형
문제 출처: www.acmicpc.net/problem/1065
1. 문제 접근 방식
- 일단 100을 기준으로 나눠야 한다. 두자리 수일 때는 항상 성립하지만 세 자리 수일 경우는 등차수열을 성립하는지 조건을 확인해야만 한다. 세 자리 수 밖에 없으므로 간단하게 각 자리 숫자들끼리 빼서 확인한다.
2. 내가 푼 코드
import sys
N = int(sys.stdin.readline())
num = 0
# 100 보다 작은 경우는 다 등차수열 성립 -> count하는 개념으로 1씩 증가
for i in range(1, N+1):
if i < 100:
num += 1
else:
# 100이상일 경우 문자열로 변환후 쪼개서 리스트 형태로 저장
# 1000 미만의 자연수를 대상으로 하기 때문에 첫째, 둘째, 셋째 자리의 값을 빼서 등차수열인지 확인
num_list = list(map(int, str(i)))
if (num_list[1] - num_list[0]) == (num_list[2] - num_list[1]):
num += 1
print(num)
3. 결과 및 느낀점
- 성공! 조건이 어렵지 않아서 다행인 문제였다.
반응형
'개인 공부 > Algorithm' 카테고리의 다른 글
[Baekjoon/백준] 11047번 Python (0) | 2021.04.10 |
---|---|
[개인공부] 알고리즘 공부 #6 (0) | 2021.04.09 |
[Baekjoon/백준] 1932번 Python (0) | 2021.04.09 |
[개인공부] 알고리즘 공부 #5 (0) | 2021.04.08 |
[Baekjoon/백준] 1439번 Python (0) | 2021.04.08 |