본문 바로가기
Algorithm/논리적사고(Logical Think)

[ 논리적사고 ] - 누적 값이 point보다 높은지 낮은지 비교하고 추가하기

by YWTechIT 2021. 9. 8.
728x90

📍 누적 값이 point보다 높은지 낮은지 비교하고 추가하기

제목은 거창하게 작성했지만, 내용은 쉬운 글이다. 이진 탐색의 결정 알고리즘 문제를 풀면서 작은 skill(?)을 남겨 놓고 싶어 작성했다. 예를 들어, 현재까지 누적된 sum=6이고, 다음 x값을 누적할 때 point보다 높으면 continue하고, 높지 않으면 포함시키는 방법을 작성하고 싶다면 어떻게 작성할까? 다음과 같이 작성할 수 있다.

 

let arr = [1, 3, 2, 5, 1, 1, 1];
let point = 10;
let sum=0;

for (let x of arr){
    if(sum+x>point)continue
    else sum+=x;
}

 

728x90

 

이를 응용해서  currentTimesongTime값을 누적할 때 만약, 다음 songTime값이 point를 넘으면 새로운 DVD로 녹음 한다고 할 때 DVD는 총 몇개가 필요할까? 의 질문에는 다음과 같이 작성할 수 있다. 중요한 점은 9번째 코드의 currentTime0으로 초기화시키는것이 아닌 현재 song으로 초기화 시켜야 다음 song을 누적할 수 있다.

let songs = [1, 3, 2, 5, 1, 1, 1];
let point = 10;
let currentTime=0;
let DVD=0;

for (let song of songs){
    if(currentTime+song>point){
        DVD++;
        currentTime=song;
    }
    else currentTime+=song
}

console.log(DVD)
👉🏽 3
반응형

댓글