이론상 가능한 작은 최소 생성자부터 시작해서 1씩 증가시키면서 탐색하는 방식으로 문제를 해결했다.
특정 값들에서 오류가 발생하여 여러 반례를 찾아가면서 코드를 마무리 지었다.
반례 2 -> 1, 1 -> 0, 1000000 -> 0 ...
n = int(input())
# 만약 n 이 3자리수라면 9 + 9 + 9 = 27 ,
# 9*3 보다 작은 수가 최소 생성자의 한계이다.
# n 이 k자리수의 수면 k - 9*k 부터 1씩 증가시키면서 탐색
k = len(str(n))
# print(k, n - 9 * k)
def ten_sum(n):
# print(n)
a = str(n)
aa = 0
for i in a:
aa += int(i)
return aa + n
if n - 9 * k > 0:
for i in range(n - 9 * k, n+1):
if ten_sum(i) == n:
print(i)
break
if i == n:
print(0)
else:
for i in range(1, n+1):
if ten_sum(i) == n:
print(i)
break
if i == n:
print(0)
'백준' 카테고리의 다른 글
ACM 호텔 - 10250 번 (0) | 2022.10.01 |
---|---|
이항 계수 1 - 11050번 (0) | 2022.10.01 |
팰린드롬수 - 1259번 (0) | 2022.09.30 |
RGB거리 2 - 17404번 (0) | 2022.09.29 |
RGB거리 - 1149번 (0) | 2022.09.29 |
댓글