[백준 1065 파이썬] - 한수

zsunny·2022년 6월 23일
0

📌 문제

💯 정답

def hansu(num):
    cnt = 0			// 한수인 수의 갯수를 세는 count 변수
    for i in range(1, num+1):
        numbers = list(map(int,str(i)))     // i 각 자리를 분리하고 다시 int형으로
        if i < 100:
            cnt += 1                        #두자리 수는 무조건 등차수열을 이룸
        elif numbers[1]-numbers[0] == numbers[2]-numbers[1]:
            cnt += 1
    return cnt

n = int(input())
print(hansu(n))

📝 설명

• 각 자릿수가 등차수열을 이루는 수를 '한수'라고 한다.
• 따라서 두 자릿수인 수는 모두 '한수'이다.
• 세 자릿수인 수는 ex) abc일때 b-a = c-b 이면 '한수'의 조건을 성립한다.
• '한수'인지 판단하는 함수를 만들고 입력받은 수 n을 이 함수에 넣어 판단해보자.
• 1 ~ num까지의 수를 검사한다.
• str 형태로 만들어 각 자리를 분리하고 다시 int형으로 만들어 list인 numbers에 저장한다.
• 만약 이 수가 100 미만 즉, 두자릿수면 모두 한수이므로 +1씩 모두 카운트한다.
• 세자릿수일 경우 각 자릿수의 차가 동일한 경우에만 +1을 카운트하고 카운트한 값을 반환한다.
• print에서는 함수를 호출하기만 하면 된다.
profile
매일 성장하는 예비 웹 개발자 🌱

0개의 댓글