백준 #2231: 분해합 [Python]
접근법 생소한 개념이라 문제를 이해하기 어려웠다. 핵심은 가장 작은 생성자를 구해야 한다는 점이다. 입력값 N이 주어졌을 때 생성자를 만드는 규칙에 따라서 가장 작은 숫자부터 차례대로 확인을 하면 편할 것이다. 즉, 생성자를 만드는 규칙은 모든 자리의 수와 해당 숫자를 더했을 때 입력값 N을 만족시키면 되기 때문에 N의 각 자릿수의 최대값은 9로 N ± ( 자릿수 * 9 ) 만큼의 범위만 확인해주면 된다 ! 예를 들어서 256이라는 숫자라고 한다면 각 자리의 숫자는 가장 큰 숫자가 9이므로 256 - 27 = 229 이므로 229부터 차례대로 규칙에 따라 N을 만족하는지 확인하면 된다. 풀이 def constructor(N): minimum = N - len(str(N)) * 9 minimum = 1 i..
프로그래밍/BOJ
2020. 2. 13. 13:35