백준|1065번|한수

README·2022년 7월 31일
0

파이썬 PS풀이

목록 보기
37/136

문제설명
양의 정수 X의 각 자리가 등차수열을 이루면, 그 수를 한수라고 한다.(ex. 123,147은 각 자리가 등차수열을 이루므로 한수이다.) N을 입력받고 1이상이면서 N이하인 숫자들중 한수의 개수를 출력하는 문제입니다.

작동 순서
1. n을 입력받는다.
2. 1부터 n까지를 i에 대입하여 반복문을 실행한다.
3. i를 문자형으로 변환하여 길이를 확인한다.
4. 길이가 1이나 2인 숫자는 무조건 등차수열로 판정하여 count에 1을 더해준다.
5. 길이가 3이상인 경우 각 자리의 수를 비교하며 등차수열인경우 count에 1을 더해준다.
6. 찾은 한수의 개수를 출력한다.

소스코드

def solution(n):
    count = 0
    for i in range(1, n+1):
        word = str(i)
        if len(word) > 2:
            diff = int(word[1]) - int(word[0])
            for j in range(len(word)-1):
                if int(word[j + 1]) - int(word[j]) != diff:
                    break
                if j == len(word) - 2:
                    count += 1
        else:
            count += 1
    print(count)


solution(int(input()))
profile
INTP 개발자 지망생

0개의 댓글