코드
n = int(input())
count = 0
# 리스트로 자리수 빼주기
for i in range(1, n+1):
new_num = list(map(int, str(i)))
# 99까지는 모든 수가 한수이므로 3자리부터 체크
if len(new_num) <3:
count += 1
# 세자리부터
else:
# 처음 값 - 두번째 값으로 등차인지 확인
chk = new_num[0] - new_num[1]
temp = 1
# 두번째 값부터 하나씩 뒤에 것 빼주면서 등차 확인
for i in range(1, len(new_num)-1):
# 뒤에 것 체크해서 템프 값 올려주기
if chk == new_num[i] - new_num[i+1]:
temp += 1
# 템프 값이 길이 - 1 이면 하나 카운트 해주기
if temp == len(new_num)-1:
count += 1
print(count)
체크
이것도 한수 등에서 봤듯이 각 자리수를 하나하나 빼주는 상황이다. 이를 꼭 확인하자.
이것 외에는 수리적인 문제였다.
'코딩테스트 > Python' 카테고리의 다른 글
[이코테 강좌] Brute force 2번 시각 - python (0) | 2022.01.04 |
---|---|
[이코테 강좌] Brute force 1번 상하 좌우 - python (0) | 2022.01.04 |
[boj-백준] Brute force 2231 분해 합 - python (0) | 2022.01.04 |
[boj-백준] Brute force 4673 셀프 넘버 - python (0) | 2022.01.04 |
[boj-백준] Brute force 2309 일곱 난쟁이 - python (0) | 2022.01.04 |