https://www.acmicpc.net/problem/1065
풀이 1
주어진 자연수가 자릿수 2 이하이면 등차수열 조건을 만족한다.
자릿수가 3 이상인 경우에는 자릿수가 1 차이나는 숫자끼리 차이가 같은지 확인한다.
# 1065번 한수
n = int(input())
cnt = 0
def check(standard):
for j in range(1, len(word)-1):
if (int(word[j]) - int(word[j+1])) != standard:
return False
return True
for i in range(1, n+1):
word = str(i)
if len(word) <= 2:
cnt += 1
else:
standard = int(word[0]) - int(word[1])
if check(standard):
cnt += 1
print(cnt)
출력결과
풀이 2
입력값은 1000 이하의 자연수라는 조건이 주어진 것을 이용해도 좋다.
# 1065번 한수
n = int(input())
cnt = 0
def check(i):
word = list(map(int, str(i)))
if 2*word[1] != word[0] + word[2]:
return False
return True
if n <= 99:
cnt = n
else:
cnt = 99
for i in range(100, n+1):
if check(i):
cnt += 1
print(cnt)
출력결과
'백준 > 구현' 카테고리의 다른 글
[백준] 1032번 명령 프롬프트 - 파이썬 (0) | 2022.03.04 |
---|---|
[백준] 1075번 나누기 - 파이썬 (0) | 2022.03.03 |
[백준] 11651번 좌표 정렬하기 2 - 파이썬 (0) | 2022.02.25 |
[백준] 18108번 1998년생인 내가 태국에서는 2541년생?! - 파이썬 (0) | 2022.02.23 |
[백준] 11650번 좌표 정렬하기 - 파이썬 (0) | 2022.02.23 |