짱해커가 되어보자

boj 2231 본문

프로그래밍_일반/백준

boj 2231

Spadework 2020. 1. 27. 09:19

문제

N에 대한 분해합의 가장 작은 생성자 M을 구하는 것

*분해합 : M + M의 각자릿 수의 합 = N

입력 : N(1 ~ 1,000,000)
출력 : N

풀이

분해합 생성자를 구하기 위한 반복의 시작은 N에서 N자리의 길이 * 각 자릿수의 최대값인 9를 곱한 만큼 빼주어 시작하면 된다

import sys

n = int(input())
l = len(str(n))

for i in range(n-l*9 if n-l*9 > 0 else 0, n):
	if(n == i + sum(int(i) for i in str(i))):
		print(i)
		sys.exit()
print(0)

 

'프로그래밍_일반 > 백준' 카테고리의 다른 글

boj 2775  (0) 2020.01.27
boj 2292  (0) 2020.01.27
boj 1085  (0) 2020.01.26
boj 10250  (0) 2020.01.26
boj 2908  (0) 2020.01.26
Comments