백준 1065번 파이썬

Myeongsu·2021년 9월 18일
1

백준

목록 보기
6/15

문제 링크: 백준 1065번(한수)
백준 1065번

어떤 수 x의 각 자리가 등차수열을 이루면, 한수라고 한다.
예를 들어 135는 공차가 2이기 때문에 등차수열을 이뤄 한수이다.
즉, 1부터 입력받은 수까지 한수의 개수를 출력하면 되는 문제이다.

코드

n = int(input())
cnt = 0

if n > 99:
    cnt += 99
else:
    cnt = n

for i in range(100, n+1):
    li = list(map(int, str(i)))
    if li[0]-li[1] == li[1]-li[2]:
        cnt += 1
print(cnt)

세 자리수 미만은 무조건 한수라고 생각했다. 공차를 특정지을 수 없기 때문이다.
그렇기 때문에 먼저 입력받은 수가 99보다 크면 한수의 개수를 99를 더해주었고 작으면 그 입력받은 값과 한수의 개수가 같기 때문에 출력했다.
이후 for문을 100부터 입력받은 수까지 돌려 각 자리수의 차이가 일치하는지 확인하는 방식으로 한수의 개수를 구해 출력했다.

profile
명수의 개발 공방

0개의 댓글