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 |