n = int(input()) #자연수 n 입력받기
cnt = 0
for i in range(1,n+1):#1~n
s = str(i) # 각자리의 수 알기 위해 문자열 변환
if len(s)==1: #한자리 수는 밑의 for문에 포함되지 않아서 따로 처리
cnt += 1
else:
diff = []
for j in range(len(s)-1): # 각 자리수 차이
diff.append(int(s[j])-int(s[j+1])) #diff라는 리스트에 저장
if len(set(diff))==1: #중복이 없는 set으로 만들어 각 자리수 차이가 같다면
cnt += 1 #한개의 값으로 합쳐질 것임->cnt++
print(cnt)
1~입력받은 n까지 for문을 돌리면서
차례대로 숫자들의 각 자리수가 등차수열을 이루는지 확인
->리스트에 각 자리수와 그 다음자리 수의 차이를 저장하여
중복을 제거하는 set()을 통해 그 차이값이 같은지 확인
같다면 차이가 같은 등차수열 이므로 개수 세기
set 선언 방법
a = {1,2,3,4,5} #key가 없는 딕셔너리
a = [1,2,3,4,5] #리스트 선언 후(리스트가 비어있어도 괜찮음)
a = set(a) #set으로
리스트 요소 추가 : a.append()
set 요소 추가 : a.add()
'공부 > 알고리즘' 카테고리의 다른 글
[백준]11720_python파이썬 풀이 (0) | 2021.12.29 |
---|---|
[백준]11654_python파이썬 풀이 | 문자열 아스키코드 변환 (0) | 2021.12.29 |
[백준]4673_python파이썬 풀이 (0) | 2021.12.29 |
[백준]4344_python파이썬 풀이 (0) | 2021.12.29 |
[백준]8958_python파이썬 풀이 (0) | 2021.12.28 |
댓글