๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Algorithm

[Algorithm] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค Lv.1 : K๋ฒˆ์งธ์ˆ˜

by ์ฝ”๋”ฉ๊ณต์ฑ… 2022. 11. 25.
๋ฐ˜์‘ํ˜•

K๋ฒˆ์งธ์ˆ˜

๋ฐฐ์—ด array์˜ i๋ฒˆ์งธ ์ˆซ์ž๋ถ€ํ„ฐ j๋ฒˆ์งธ ์ˆซ์ž๊นŒ์ง€ ์ž๋ฅด๊ณ  ์ •๋ ฌํ–ˆ์„ ๋•Œ, k๋ฒˆ์งธ์— ์žˆ๋Š” ์ˆ˜๋ฅผ ๊ตฌํ•˜๋ ค ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด array๊ฐ€ [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3์ด๋ผ๋ฉด

1. rray์˜ 2๋ฒˆ์งธ๋ถ€ํ„ฐ 5๋ฒˆ์งธ๊นŒ์ง€ ์ž๋ฅด๋ฉด [5, 2, 6, 3]์ž…๋‹ˆ๋‹ค.
2. 1์—์„œ ๋‚˜์˜จ ๋ฐฐ์—ด์„ ์ •๋ ฌํ•˜๋ฉด [2, 3, 5, 6]์ž…๋‹ˆ๋‹ค.
3. 2์—์„œ ๋‚˜์˜จ ๋ฐฐ์—ด์˜ 3๋ฒˆ์งธ ์ˆซ์ž๋Š” 5์ž…๋‹ˆ๋‹ค.

๋ฐฐ์—ด array, [i, j, k]๋ฅผ ์›์†Œ๋กœ ๊ฐ€์ง„ 2์ฐจ์› ๋ฐฐ์—ด commands๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, commands์˜ ๋ชจ๋“  ์›์†Œ์— ๋Œ€ํ•ด ์•ž์„œ ์„ค๋ช…ํ•œ ์—ฐ์‚ฐ์„ ์ ์šฉํ–ˆ์„ ๋•Œ ๋‚˜์˜จ ๊ฒฐ๊ณผ๋ฅผ ๋ฐฐ์—ด์— ๋‹ด์•„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.

์กฐ๊ฑด

* array์˜ ๊ธธ์ด๋Š” 1 ์ด์ƒ 100 ์ดํ•˜์ž…๋‹ˆ๋‹ค.
* array์˜ ๊ฐ ์›์†Œ๋Š” 1 ์ด์ƒ 100 ์ดํ•˜์ž…๋‹ˆ๋‹ค.
* commands์˜ ๊ธธ์ด๋Š” 1 ์ด์ƒ 50 ์ดํ•˜์ž…๋‹ˆ๋‹ค.
* commands์˜ ๊ฐ ์›์†Œ๋Š” ๊ธธ์ด๊ฐ€ 3์ž…๋‹ˆ๋‹ค.

๋ฌธ์ œ ํ’€์ด

answer, answer2 ๋‘ ๊ฐœ์˜ ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•œ ๋‹ค์Œ for๋ฌธ์„ ์ด์šฉํ•˜์—ฌ answer ์•ˆ์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’์„ ์ž…๋ ฅํ•œ๋‹ค. ์ดํ›„, sort()๋กœ ์ •๋ ฌํ•˜๊ณ  ์ •๋ ฌํ•œ ๊ฐ’์—์„œ ๋‹ค์‹œ ํ•ด๋‹นํ•˜๋Š” ๊ฐ’์„ ์ถ”์ถœํ•˜์—ฌ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด answer2์— ์ €์žฅ์‹œํ‚จ๋‹ค. answer2์˜ ํ˜•ํƒœ๋Š” [[์ˆซ์ž], [์ˆซ์ž], [์ˆซ์ž], ...]์ด๊ธฐ ๋•Œ๋ฌธ์—, map์„ ์‚ฌ์šฉํ•ด ํ•˜๋‚˜์˜ ๋ฐฐ์—ด๋กœ ๋งŒ๋“ค์–ด์ฃผ์—ˆ๋‹ค.
function solution(array, commands) {
    let answer = [];
    let answer2 = [];
    for(i=0; i<commands.length; i++){
        answer.push(array.slice(commands[i][0] - 1, commands[i][1]));
        answer[i].sort(function(a,b){return a-b});
        answer2.push(answer[i].slice(commands[i][2] - 1, commands[i][2]));
    }
    return answer2.map(el => Number(el));
}

๋‹ค๋ฅธ ํ’€์ด ๋ฐฉ์‹

function solution(array, commands) {
    return commands.map(v => {
        return array.slice(v[0] - 1, v[1]).sort((a, b) => a - b).slice(v[2] - 1, v[2])[0];
    });
}
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€


Reference Book

JavaScript
HTML
CSS
๊ด‘๊ณ  ์ค€๋น„์ค‘์ž…๋‹ˆ๋‹ค.