๐Ÿ’ป๊ฐœ๋ฐœ๊ณต๋ถ€/Algorithm

[JS ์•Œ๊ณ ๋ฆฌ์ฆ˜] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค K๋ฒˆ์งธ ์ˆ˜

Jee-young 2021. 9. 16. 12:53

https://programmers.co.kr/learn/courses/30/lessons/42748?language=javascript 

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - K๋ฒˆ์งธ์ˆ˜

[1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3]

programmers.co.kr

 

 

๐Ÿ“ ๋ฌธ์ œ

 

๐Ÿ“ ํ’€์ด

์‚ฌ์šฉํ•œ ๋ฉ”์†Œ๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. 

  • slice(start, end): start ์ธ๋ฑ์Šค๋ถ€ํ„ฐ end ์ธ๋ฑ์Šค ์ด์ „๊นŒ์ง€ ์Šฌ๋ผ์ด์‹ฑํ•œ ๋ฐฐ์—ด ๋ฐ˜ํ™˜
  • sort: ์ •๋ ฌ๋ฉ”์†Œ๋“œ 
  • push: ๋ฐฐ์—ด ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์›์†Œ ์ถ”๊ฐ€๋จ 

์ฝ”๋“œ ์ž‘์„ฑ์€ ์–ด๋ ต์ง€์•Š์€๋ฐ, sort() ์ •๋ ฌ๋ถ€๋ถ„์—์„œ ์ฃผ์˜ํ• ์ ์ด ์žˆ๋‹ค. ๋งŒ์•ฝ ๋‹ค์Œ๊ณผ๊ฐ™์ด sort()๋งŒ ํ•ด์ฃผ๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋‚ ๊ฒƒ์ด๋‹ค. 

์™œ๋ƒํ•˜๋ฉด ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์œ ๋‹ˆ์ฝ”๋“œ ๋ฌธ์ž์—ด์„ ๋น„๊ตํ•ด์„œ ์ •๋ ฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” ์ˆซ์ž ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ์ด ๋‚˜์˜ค์ง€ ์•Š๊ฒŒ๋œ๋‹ค. ๋”ฐ๋ผ์„œ sortํ•จ์ˆ˜ ์•ˆ์— ์ •๋ ฌ์ˆœ์„œ๋ฅผ ์ •์˜ํ•ด์ค˜์•ผํ•œ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ˆ˜์ •ํ•ด์ค€๋‹ค. 

์ •๋ ฌ๋ฌธ ์ž‘์„ฑ์‹œ, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” compareFunction์„ ๊ผญ ๋”ฐ๋กœ ๋งŒ๋“ค์–ด์ค˜์•ผํ•œ๋‹ค!!

 

๐Ÿ“ ์ „์ฒด ์ฝ”๋“œ 

function solution(array, commands) {
    var answer = [];
    
    for(var i=0; i<commands.length;i++){
        var new_array = array.slice(commands[i][0]-1, commands[i][1]).sort((a, b) => {return a-b}); 
        
        answer.push(new_array[commands[i][2]-1]);
    }

    return answer;
}