본문으로 바로가기

[백준] 2231번 분해합

category 알고리즘/완전탐색 2019. 1. 30. 04:04

이번에도 생각만 잘하면 쉽게 풀 수 있는 문제입니다.

만약 숫자 256은 = 245 + 2 + 4 + 5 입니다. 그럼 생성자는 245겠지요.

M이라는 숫자가 생성자이고,  셋째자리라면 M + M첫째자리 + M둘째자리 + M셋째자리 입니다.

근데 각 자리수마다 올 수 있는 최댓값은 9입니다.

그럼 첫번째부터 돌 필요 없이, 주어진 숫자의 자릿수 만큼 9를 빼주면 됩니다.

그럼 그 숫자가 적어도 최소 시작 점이겠죠?

(N을 생성하려면 M이라는 숫자 + ? 인데, ?는 최대 9밖에 올 수 없으니까요)

256의 최소 시작점은 256 - 9 * 3 입니다.



<풀이 소스>


사실 각 자릿수마다 토큰화시키는게 더 오래 걸린 문제;;

'알고리즘 > 완전탐색' 카테고리의 다른 글

[백준] 2309번 일곱 난쟁이  (0) 2019.01.30