😎풀이

  1. 현재 만들 수 없는 수 miss 선언
  2. missn 이하일 경우 반복
    2-1. 현재 순회의 수가 miss 이하라면, 이미 만들 수 있는 수 이므로, miss에 해당 수를 더 해 조합할 수 있는 수의 범위 증가
    2-2. 현재 순회의 수가 miss 초과라면, miss를 patch 하여 모든 새로운 조합 추가
  3. 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;
}
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글