자료구조 및 알고리즘/백준

[python] 1065. 한수

viamemine 2023. 7. 28. 12:49
728x90
반응형

 

  • 문제


 

  • 올바른 풀이
N = int(input())

def check_hansu(num, check):
    if num > 99: # 1000보다 작은 자연수
        num_str = [int(i) for i in str(num)]
        if num_str[1]-num_str[0] == num_str[2]-num_str[1]:
            check = 1
    else:
        check = 1
    return check

check = 0
cnt = 0
for i in range(1, N+1):
    cnt += check_hansu(i, check)
print(cnt)

 

해당 문제는 각 자리수의 차가 동일한지를 확인하는 문제이다.

완전 탐색으로 문제를 해결하면 되는데,

1000보다 작거나 같은 자연수만큼 for문을 돌려서 각 자리수의 차를 확인해보면 된다.

 

이 때, 두 자리 수는 차가 없기 때문에 모두 count(cnt)하고 

세 자리 이상일 경우 각 자리 수의 차리를 확인하고 동일할 때 count(cnt)+ 1을 해준다. 

728x90