๐Ÿ”’Algorithm

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ํ’€์ด(js) > ๊ตฌ๋ช…๋ณดํŠธ(lv2)

devWarrior 2023. 6. 24. 21:00

๋ฌธ์ œ ๐Ÿ”ฝ

https://school.programmers.co.kr/learn/courses/30/lessons/42885

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

 

๋‹ค๋ฅธ์‚ฌ๋žŒ ํ’€์ด ๐Ÿ”ฝ

function solution(people, limit) {
    people.sort(function(a, b){return a-b});
    for(var i=0, j=people.length-1; i < j; j--) {
        if( people[i] + people[j] <= limit ) i++;
    }    
    return people.length-i;
}

๋‚ดํ’€์ด๐Ÿ”ฝ

1. ์‹คํŒจ โŒ => ๋…ผ๋ฆฌ ์˜ค๋ฅ˜

function solution(people, limit) {
    let sum = 0;    
    let boatCount = 1;
    let weight = people.sort((a,b)=>{
        return a-b
    })
    for(let i=0; i<weight.length; i++){
        if(sum+weight[i]<=limit){
            sum+=weight[i]
        }else{
            sum=weight[i];
            ++boatCount;
        }   
    }
    return boatCount;
}

2. ์„ฑ๊ณต โญ• 

function solution(people, limit) {
  
    let boatCount = 0;
    people = people.sort((a,b)=>{
        return b-a;
    })    

    for(let i=0, j=people.length-1; i<=j; ++i,++boatCount){
        if(people[i]+people[j]<=limit){
            --j;
        }   
    }

    return boatCount;
}

๋А๋‚€์ ๐Ÿ”ฝ

2๊ฐ€์ง€ ์‚ฌํ•ญ์„ ๊ฐ„๊ณผํ–ˆ๋‹ค.

ํ•œ๋ฒˆ์— ์ตœ๋Œ€ 2๋ช…๊นŒ์ง€๋งŒ ๋ณดํŠธ๋ฅผ ํƒˆ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ 

๊ทธ๋ฆฌ๊ณ  ์ตœ๋Œ€ํ•œ ๋งŽ์€ ์‚ฌ๋žŒ์ด ํƒˆ ์ˆ˜ ์žˆ์œผ๋ ค๋ฉด ์ตœ๋Œ€๋ชธ๋ฌด๊ฒŒ + ์ตœ์†Œ๋ชธ๋ฌด๊ฒŒ์ธ ์‚ฌ๋žŒ์ด ํ•จ๊ป˜ ํƒ€์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ 

-> ์š” 2๊ฐ€์ง€ ์‚ฌํ•ญ๋•Œ๋ฌธ์— ์‹œ๊ฐ„์ด ๋„ˆ๋ฌด ์˜ค๋ž˜ ๊ฑธ๋ ธ๋‹ค.