[BOJ]1065:単数



🔒 例

>> 110

99

>> 1

1

>> 210

105

>> 1000

144

🔧 に答える

1. n = int(sys.stdin.readline().rstrip())
2. 한수(x의 각 자리가 등차수열인 수) 구하기
	2.1 1부터 99까지: 항상 한수 / 100부터 n까지 숫자 확인
    2.2 문자열과 정수형을 번갈아가며 각 자리 수 차이 확인    

🔑 答案用紙

import sys

n = int(sys.stdin.readline().rstrip())
cnt = n
if n > 99:
    cnt = 99
    for num in range(100, n+1):
        # 123 135 147 159 234 246 258
        flag = True
        gap = int(str(num)[0]) - int(str(num)[1])
        for i in range(2, len(str(num))):
            if gap != int(str(num)[i-1]) - int(str(num)[i]):
                flag = False
                break
        if flag:
            cnt += 1

print(cnt)

💡 コンセプト