문제
https://www.acmicpc.net/problem/1065
문제이해
n이 주어졌을때 그 수가 한수인지 아닌지를 확인해야 한다.
허나 1의자리로 되어진 1,2,3,4....9는 한수라고 할 수 있다.
등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다
01, 02, 03... 09라고 하면 두 개의 수의 차이가 일정하기 때문이다.
마찬가지로 10의자리 형태를 보면
11, 12, 13, 14.... 99까지 두 개의 수 차이가 1개로 일정하기 때문에 한수이다.
즉, 1~ 99까지는 모두 한수이다.
그렇다면 100의 자리가 나오는거 부터 봐야한다.
예제에 210 은 105개가 한수라고 나타난다.
105 - 99 하면 총 6개의 한수가 나온다.
1 1 1
1 2 3
1 3 5
1 4 7
1 5 9
2 1 0
으로 6개의 한수가 나오는대 100의 자리에서 공차가 0,1,2,3,4가 된다.
즉 100의자리 - 10의자리 와
10의자리 - 1의자리가 같다면(공차가 같다면)
한수라고 판별이 가능하다.
코드
input_num = int(input())
count = 0
for i in range(1,input_num+1):
if(i > 100):
a = (i//100)
b = ((i%100)//10)
c = ((i%10)//1)
#print(a, b,c, c-b, b-a)
if((a-b) == (b-c)):
count +=1
elif(i < 100):
count +=1
print(count)
참고
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=occidere&logNo=220790000403
728x90
'알고리즘 > 백준알고리즘' 카테고리의 다른 글
[백준 알고리즘/Python3] 1157 단어 공부 (1) | 2021.08.27 |
---|---|
[백준 알고리즘/Python3] 10809 알파벳 찾기 (0) | 2021.08.26 |
[백준 알고리즘/Python3] 4673 셀프 넘버 (0) | 2021.08.22 |
[백준 알고리즘/Python3] 2884 알람시계 (0) | 2021.07.20 |
[백준 알고리즘/Python3]14681 사분면 고르기 (0) | 2021.07.20 |