๋ฐ์ํ
Question
ํ๋ก๊ทธ๋๋จธ์ค : K๋ฒ์งธ์
์ ์ถ๋ ฅ ์์
์ ์ถ๋ ฅ ์ ์ค๋ช
- [1, 5, 2, 6, 3, 7, 4]๋ฅผ 2๋ฒ์งธ๋ถํฐ 5๋ฒ์งธ๊น์ง ์๋ฅธ ํ ์ ๋ ฌํฉ๋๋ค. [2, 3, 5, 6]์ ์ธ ๋ฒ์งธ ์ซ์๋ 5์ ๋๋ค.
- [1, 5, 2, 6, 3, 7, 4]๋ฅผ 4๋ฒ์งธ๋ถํฐ 4๋ฒ์งธ๊น์ง ์๋ฅธ ํ ์ ๋ ฌํฉ๋๋ค. [6]์ ์ฒซ ๋ฒ์งธ ์ซ์๋ 6์ ๋๋ค.
- [1, 5, 2, 6, 3, 7, 4]๋ฅผ 1๋ฒ์งธ๋ถํฐ 7๋ฒ์งธ๊น์ง ์๋ฆ ๋๋ค. [1, 2, 3, 4, 5, 6, 7]์ ์ธ ๋ฒ์งธ ์ซ์๋ 3์ ๋๋ค.
My Code
1. for๋ฌธ์ ๋๋ ค์ answer์ push ํ๋ ์ฝ๋
function solution(array, commands) {
let answer = [];
let len = commands.length;
for (let i = 0; i < len; i++) {
answer.push(
array
.slice(commands[i][0] - 1, commands[i][1])
.sort((a, b) => a - b)[commands[i][2] - 1]
)
}
return answer;
}
์ ๋ต์ด๊ธด ํ๋ฐ ์ด์ฉ์ง ์ฝ๋๊ฐ ์ง์ ๋ถํด ๋ณด์ธ๋ค.
HOW? (ํ์ด๋ฐฉ๋ฒ)
- ์ ๋ต์ธ ๋ฐฐ์ด์ ์ด commands์ ๊ธธ์ด์ ์์ ๋๊ฐ์ผ๋ฏ๋ก for๋ฌธ์ ๊ทธ๋งํผ ๋๋ ค์ค๋ค.
- commands์ ์กฐ๊ฑด์ ๋ง๋ ๋ฐฐ์ด์ slice๋ฅผ ํตํด ํ์ฑํ ํ sort๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌ์ ํด์ค๋ค.
- ์ ๋ ฌ๋ ๋ฐฐ์ด์ n๋ฒ์งธ ์๋ฅผ arr์ push ํ๋ค.
*** ์ปดํจํฐ๋ ๋ฐฐ์ด์ 0๋ถํฐ ์ผ๋ค. ๋ฐ๋ผ์ ๋ฒ์์ ์๋ฅผ -1 ํ๋ค.
*** slice(n, m)์ ์ธ๋ฑ์ค n๋ถํฐ m-1๊น์ง๋ฅผ ์๋ก์ด ๋ฐฐ์ด๋ก ๋ฐํํด์ฃผ๋ฏ๋ก slice์๋ถ๋ถ ๋ฒ์๋ง -1์ ํ๋ค.
2. commands์ map์ ์ฌ์ฉํ ์ฝ๋
function solution(array, commands) {
let answer = commands.map((ele) =>
array
.slice(ele[0] - 1, ele[1])
.sort((a, b) => a - b)[ele[2] - 1])
return answer;
}
HOW? (ํ์ด๋ฐฉ๋ฒ)
- for๋ฌธ์์ ๋๋ commands์ ์์๋ค์ map์ ์ด์ฉํด์ ์๋ก์ด ๋ฐฐ์ด์ ๋ฐํํ๋ค.
- ๊ฐ๊ฐ ์์๋ค์ ์ ๊ทผ์ผ๋ก ์ด์ฐจ์ ๋ฐฐ์ด์ ์ ๊ทผ์ด ์ผ์ฐจ์ ๋ฐฐ์ด๋ก ๋ฐ๊ฟจ๋ค.
- slice๋ฅผ ํ๊ณ sort๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ์์ ๋๊ฐ๋ค.
๋ ๊น๋ํ ์ฝ๋๊ฐ ๋๋ค!!!!
๋ฌธ์ ๋ฅผ ํธ๋ ์ ๊ทผ์ ๋น์ทํ์ง๋ง ์ด๋ค ๋ฐฉ์์ ํํ๋๋์ ๋ฐ๋ผ ๊ฐ๋ ์ฑ์ด ๋ฌ๋ผ์ก๋ค.
ํ์ด ์๊ฐ์ ์ฐจ์ด๋
์ฒซ ๋ฒ์งธ ํธ๋ ๋ฐฉ์
๋ ๋ฒ์งธ ํธ๋ ๋ฐฉ์
์ผ์ด์ค ๋ฐ์ด ์ผ์ด์ค์ ๋ฐ๋ผ ๋ ๋น ๋ฅด๊ฑฐ๋ ๋๋ฆฐ ๊ฑฐ ๊ฐ์ ๋ณด์ธ๋ค.
๊ทผ๋ฐ ๋ณ๋ก ์ฐจ์ด ์๋ ๋ณด์ธ๋ค.
๋ฐ์ํ
'Algorithms > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JS] ํ๋ก๊ทธ๋๋จธ์ค : x๋งํผ ๊ฐ๊ฒฉ์ด ์๋ n๊ฐ์ ์ซ์ (0) | 2022.07.13 |
---|---|
[JS] ํ๋ก๊ทธ๋๋จธ์ค : 2016๋ (0) | 2022.06.04 |
[JS] ํ๋ก๊ทธ๋๋จธ์ค : ์ ์ผ ์์ ์ ์ ๊ฑฐํ๊ธฐ (0) | 2022.05.27 |
[JS] ํ๋ก๊ทธ๋๋จธ์ค : ์์ฐ์ ๋ค์ง์ด ๋ฐฐ์ด๋ก ๋ง๋ค๊ธฐ (0) | 2022.05.22 |
[JS] ํ๋ก๊ทธ๋๋จธ์ค : ์ด์ํ ๋ฌธ์ ๋ง๋ค๊ธฐ (0) | 2022.05.20 |