miss
선언miss
가 n
이하일 경우 반복miss
이하라면, 이미 만들 수 있는 수 이므로, miss
에 해당 수를 더 해 조합할 수 있는 수의 범위 증가miss
초과라면, miss
를 patch 하여 모든 새로운 조합 추가function minPatches(nums: number[], n: number): number {
let patches = 0;
let miss = 1;
let i = 0;
while (miss <= n) {
if (i < nums.length && nums[i] <= miss) {
miss += nums[i];
i++;
} else {
miss += miss;
patches++;
}
}
return patches;
}