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

<코드 설명>

양수 n을 입력받아주었다. 그리고 cnt의 초기값을 0으로 설정해주었다.

 

숫자를 자릿수 기준으로 나누기 위해 i를 먼저 문자열로 바꿀 수 있도록 str(i)로 바꿔주었다.

문자열로 되어있는 각 자릿수를 정수로 바꿔주기 위해 map(int, str(i))를 작성해주었다.

이를 list로 바꾸기 위해 list(map(int, str(i))) 라고 작성해주었다.

 

i가 100보다 작은 경우, 항상 한수이므로 cnt값을 증가시켜주었다.

그렇지 않으면 각 자리수가 등차수열의 경우인 arr[0]-arr[1]==arr[1]-arr[2]일 때 cnt값을 증가시켜주었다.

이렇게 구한 cnt값을 출력해주었다.

 

<실행결과>

'Algorithm > BOJ' 카테고리의 다른 글

[BOJ] 16499 동일한 단어 그룹화하기  (0) 2022.11.06
[BOJ] 13417 카드 문자열  (0) 2022.11.06
[BOJ] 2776 암기왕  (0) 2022.10.09
[BOJ] 9322 철벽 보안 알고리즘  (0) 2022.10.09
[BOJ] 1463 1로 만들기  (0) 2022.10.02

+ Recent posts