Hanbit the Developer

[Python] 백준 1065번: 한수 본문

Algorithm/백준

[Python] 백준 1065번: 한수

hanbikan 2021. 4. 16. 16:23

 

def checkIsHansu(num):
    strNum = str(num)
    if len(strNum) >= 3:
        lastDiff = int(strNum[1]) - int(strNum[0])
        for i in range(1, len(strNum)-1):
            if int(strNum[i+1]) - int(strNum[i]) != lastDiff:
                return False
            lastDiff = int(strNum[i+1]) - int(strNum[i])

    return True


hansuCount = 0
X = int(input())
for i in range(1, X+1):
    if checkIsHansu(i):
        hansuCount += 1

print(hansuCount)

checkIsHansu()만 알면 된다. 숫자를 str 타입으로 캐스팅하여 저장하고, 각 자릿수의 차이를 비교하면 된다. 그리고 1~99의 경우에는 모두 한수이므로 무조건 True를 리턴해준다.

 

여담으로, 번아웃으로 인해 당분간 실버 수준의 쉬운 문제들만 풀기로 하였다. 원래는 코드로부터 완전히 벗어나려고 하였으나, 코딩 문제 풀이 감각을 잃는 것은 싫기 때문에 이렇게 하게 된 것이다.