array์์ ์ฃผ์ด์ง ๊ตฌ๊ฐ์ ์๋ฅด๊ณ , ์ ๋ ฌํ ๋ค, K๋ฒ์งธ ์ซ์๋ฅผ ๊ตฌํ๋ ๋ฌธ์ .array: ์ซ์ ๋ฐฐ์ดcommands: [i, j, k] ํํ์ 2์ฐจ์ ๋ฐฐ์ดi: ์์ ์ธ๋ฑ์ค (1-based)j: ๋ ์ธ๋ฑ์ค (1-based)k: ์ ๋ ฌ ํ K๋ฒ์งธ ์ซ์ ์์นarray = [1, 5, 2, 6, 3, 7, 4];
commands = [[2, 5, 3], [4, 4, 1], [1, 7, 3]];
[5, 6, 3]
- ๊ตฌ๊ฐ์ ์๋ฅธ๋ค -->
slice()- ์ ๋ ฌ์ ํด๋ผ -->
sort()- ๋ฐฐ์ด์ ๋ํด๋ผ -->
reduce()
function solution(array, commands) {
var answer = [];
answer = commands.map((e,i) => {
let newArr = array.slice(e[0] - 1, e[1]).sort()
return newArr.length === 1 ? newArr[0] : newArr[e[2] -1]
})
return answer;
}
์ค์ ์ฝ๋๋ฅผ ๋๋ ค๋ณด๋..

๋๋ฒ์งธ ์์์์ ๊ฑธ๋ฆฌ๊ฒ ๋์๋ค..!!
ํ๋ก๊ทธ๋๋จธ์ค์์ AI์ฝ๋ ํผ๋๋ฐฑ์ด ์๊ธธ๋..
๋๋ ค๋ณด๋
AI:
์ฌ์ฉ์๊ฐ ์์ฑํ ์ฝ๋์์ ์ฃผ์ํด์ผ ํ ๋ถ๋ถ์ด ์์ต๋๋ค. ๋ฐ๋กarray.slice(from, to).sort()๋ถ๋ถ์ธ๋ฐ์, ์ฌ๊ธฐ์.sort()๋ฉ์๋๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฐฐ์ด์ ์์๋ฅผ ๋ฌธ์์ด๋ก ๋ณํํ๊ณ ์ ๋์ฝ๋ ํฌ์ธํธ ์์๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํฉ๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ซ์ ๋ฐฐ์ด์ ์๋ํ ๋๋ก ์ ๋ ฌํ๊ธฐ ์ํด์๋.sort()๋ฉ์๋์ ๋น๊ต ํจ์๋ฅผ ์ ๊ณตํด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์ซ์๋ฅผ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ๋ ค๋ฉด.sort((a, b) => a - b)์ ๊ฐ์ด ์์ฑํ ์ ์์ต๋๋ค. ์ด ํํธ๋ฅผ ๋ฐํ์ผ๋ก ์ฝ๋๋ฅผ ์์ ํด๋ณด์ธ์. ์์ ์ด ํ์ํ ๋ถ๋ถ์ ์ซ์ ์ ๋ ฌ ๋ก์ง์ ๋น๊ต ํจ์๋ฅผ ์ถ๊ฐํ๋ ๊ฒ์ ๋๋ค.
function solution(array, commands) {
var answer = [];
answer = commands.map((e,i) => {
let newArr = array.slice(e[0] - 1, e[1]).sort((a,b) => a-b)
return newArr.length === 1 ? newArr[0] : newArr[e[2] -1]
})
return answer;
}
AI์ ์กฐ์ธ์ ๋ฐ์ sort((a,b) => a-b)๋ฅผ ์ถ๊ฐํ์๋ค.
๋๋ ๋ณดํต ์ผ๋ฐ์ ์ธ ์ ๋ ฌ์ ์งํํ ๋ sort()๋ก ๊ฐ๋จํ๊ฒ ์ฌ์ฉ์ ํ์๋๊ฒ ๊ฐ์๋ฐ..
slice()๋ก ํด๋น๋๋ ๋ฒ์๋ฅผ ์๋ฅธ๋ค, sort()์ ๋ ฌํ๋ค๊ทธ๋ฐ๋ฐ.. ์กฐ๊ฑด๋ฌธ์ด ๋ง์ฝ 3๋ฒ์งธ๋ฅผ ๋ถ๋ฌ์ค๋๋ฐ ์ค์ ๋ฐฐ์ด์ด ๋ง์ฝ length๊ฐ 2๋ผ๋ฉด..์ฌ๊ธฐ์ ์ฒซ๋ฒ์งธ ๊ฐ์ ๋ถ๋ฌ์ค๋์ง, ๊ทธ ์์ 2๋ฒ์งธ ํญ๋ชฉ์ ๋ถ๋ฌ์ค๋์ง๊ฐ ์ข๋ ๋ช ํํ๊ฒ ์กฐ๊ฑด๋ฌธ์ด ์กํ๋๋ผ๋ฉด ์ข์์๊ฑฐ ๊ฐ๋ค.
array.sort()๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฌธ์์ด ๊ธฐ์ค์ ์ ๋ ฌ์ ์ํํฉ๋๋ค.
์ฆ, ์์๋ค์ ๋ฌธ์์ด๋ก ๋ณํํ ๋ค ์ ๋์ฝ๋ ๊ฐ์ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํฉ๋๋ค.
์ด ๋ฐฉ์์ ์ซ์ ๋ฐฐ์ด์ ์ ๋ ฌํ ๋ ์๋ํ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฅํ์ง ๋ชปํฉ๋๋ค.
[1, 5, 2, 6, 3, 7, 10, 4].sort();
// ["1", "10", "2", "3", "4", "5", "6", "7"] (๋ฌธ์์ด๋ก ๋ณํ ํ ์ ๋์ฝ๋ ์ ๋ ฌ)