๐ ๋ค์ด๊ฐ๋ฉฐ
ํ๋ก๊ทธ๋๋จธ์ค์์ ์ฐ์ต๋ฌธ์ '2์ฐจ์์ผ๋ก ๋ง๋ค๊ธฐ' ๋ฌธ์ ๋ฅผ ํ๋ ๋์ค ์ฌ๋ฌ ๋ฐฉ์์ด ์์๊ณ ๋ด๊ฐ ํผ ๋ฐฉ์๊ณผ ๋ค๋ฅธ ๋ฐฉ์์ ๋น๊ตํ๋ฉฐ ๊ฐ์ด ์ดํดํ๊ธฐ ์ํด ๊ธฐ๋กํ๋ค.
โ ๋ฌธ์
๋ฌธ์ ์ค๋ช
์ ์ ๋ฐฐ์ด num_list์ ์ ์ n์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. num_list๋ฅผ ๋ค์ ์ค๋ช ๊ณผ ๊ฐ์ด 2์ฐจ์ ๋ฐฐ์ด๋ก ๋ฐ๊ฟ returnํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
num_list๊ฐ [1, 2, 3, 4, 5, 6, 7, 8] ๋ก ๊ธธ์ด๊ฐ 8์ด๊ณ n์ด 2์ด๋ฏ๋ก num_list๋ฅผ 2 * 4 ๋ฐฐ์ด๋ก ๋ค์๊ณผ ๊ฐ์ด ๋ณ๊ฒฝํฉ๋๋ค. 2์ฐจ์์ผ๋ก ๋ฐ๊ฟ ๋์๋ num_list์ ์์๋ค์ ์์์๋ถํฐ n๊ฐ์ฉ ๋๋ 2์ฐจ์ ๋ฐฐ์ด๋ก ๋ณ๊ฒฝํฉ๋๋ค.
num_list n result [1, 2, 3, 4, 5, 6, 7, 8] 2 [[1, 2], [3, 4], [5, 6], [7, 8]]
์ ํ ์ฌํญ
- num_list์ ๊ธธ์ด๋ n์ ๋ฐฐ ์๊ฐ์ ๋๋ค.
- 0 ≤ num_list์ ๊ธธ์ด ≤ 150
- 2 ≤ n < num_list์ ๊ธธ์ด
์ ์ถ๋ ฅ ์
numbers | n | result |
[1, 2, 3, 4, 5, 6, 7, 8] | 2 | [[1, 2], [3, 4], [5, 6], [7, 8]] |
[100, 95, 2, 4, 5, 6, 18, 33, 948] | 3 | [[100, 95, 2], [4, 5, 6], [18, 33, 948]] |
์ ์ถ๋ ฅ ์ ์ค๋ช
์ ์ถ๋ ฅ ์ #1
- num_list๊ฐ [1, 2, 3, 4, 5, 6, 7, 8] ๋ก ๊ธธ์ด๊ฐ 8์ด๊ณ n์ด 2์ด๋ฏ๋ก 2 * 4 ๋ฐฐ์ด๋ก ๋ณ๊ฒฝํ [[1, 2], [3, 4], [5, 6], [7, 8]] ์ returnํฉ๋๋ค.
์ ์ถ๋ ฅ ์ #2
- num_list๊ฐ [100, 95, 2, 4, 5, 6, 18, 33, 948] ๋ก ๊ธธ์ด๊ฐ 9์ด๊ณ n์ด 3์ด๋ฏ๋ก 3 * 3 ๋ฐฐ์ด๋ก ๋ณ๊ฒฝํ [[100, 95, 2], [4, 5, 6], [18, 33, 948]] ์ returnํฉ๋๋ค.
๐ก ํ์ด 1
์ฝ๋
function solution(num_list, n) {
const answer = [];
for(let i = 0; i < num_list.length / n; i++) {
answer.push(num_list.slice(i * n, i * n + n))
}
return answer;
}
for๋ฌธ์์๋ num_list ๋ฐฐ์ด ๊ธธ์ด์์ n์ ๋๋ ๋ชซ๋งํผ ๋ฐ๋ณต๋๊ฒ ํด์ฃผ๊ณ ,
slice ๋ฐฐ์ด ๋ด์ฅ ํจ์๋ฅผ ์ด์ฉํด์ answer ๋ณ์์ ๊ฐ์ ๋ด์ ์ ์๋๋ก ํด์คฌ๋ค.
slice ๋ฐฐ์ด ๋ด์ฅ ํจ์๋ index๋ฅผ ํตํด์ ๋ฐฐ์ด์ ์๋ฅด๊ณ ์๋ฅธ ๋ฐฐ์ด์ return ํด์ค ์ ์๋ค.
์ด๊ฒ์ ์ฒซ๋ฒ์งธ ์ธ์๋ก ์๋ฅด๊ธฐ ์์ํ๋ index๋ฅผ ๋ฐ๊ณ , ๋๋ฒ์งธ ์ธ์๋ก ์ด๋ index ์ ๊น์ง ์๋ฅผ์ง ํด๋น index๋ฅผ ๋ฃ์ด์ฃผ๋ฉด ๋๋ค.
์๋ฅผ ๋ค์ด์, [1, 2, 3, 4].slice(0, 2) ์ ๊ฒฐ๊ณผ ๊ฐ์ผ๋ก๋ [1, 2] ์ฆ, 0 ~ 1๋ฒ index๊น์ง ์๋ฅด๊ฒ ๋๋ ๊ฒ์ด๋ค.
์ฝ๋์์ slice ๋ด์ฅ ํจ์์ ์ธ์์ (i * n, i * n + n)์ ๋ฃ์ด ์คฌ๋๋ฐ, n์ 2๋ก ์์๋ฅผ ๋ค๋ฉด
i๋ 0๋ถํฐ ์์์ผ๋ก (0 * 2, 0 * 2 + 2) = (0, 2) ๊ฐ ๋๊ณ ,
i๊ฐ 1์ด ๋๋ฉด (1 * 2, 1 * 2 + 2) = (2, 4) ๊ฐ ๋๋ฉด์ ์กฐ๊ฑด์ ๋ง๊ฒ 2๊ฐ์ฉ ๋ฌถ์ 2์ฐจ์ ๋ฐฐ์ด์ ๋ง๋ค ์ ์๊ฒ ๋๋ ๊ฒ์ด๋ค.
โ ์ฑ์ 1
๐ก ํ์ด 2
์ฝ๋
function solution(num_list, n) {
const answer = [];
while(num_list.length) {
answer.push(num_list.splice(0, n));
}
return answer;
}
๊ฐ์ธ์ ์ผ๋ก ํด๋น ํ์ด๊ฐ ๋ง์ ๋ ๋ค.
์ด์ ๋ ์ ๋ง ์งง๊ณ ๊ฐ๊ฒฐํ๊ฒ ๊ฒฐ๊ณผ๋ฅผ ๋์ถํ ์ ์๋ ์ฝ๋๋ผ๊ณ ์๊ฐํ๋ค.
while๋ฌธ์ num_list์ ๊ธธ์ด๊ฐ 0์ด ๋๋ฉด ์ค๋จํ๊ฒ ๋๋๋ฐ while๋ฌธ ์์์๋ num_list ๋ฐฐ์ด์ splice ๋ด์ฅ ํจ์๋ฅผ ํตํด์ ๋ฐฐ์ด์ ์๋ฅด๊ณ ๊ทธ ๊ฒฐ๊ณผ ๊ฐ์ answer๋ฐฐ์ด์ ๋ด์์ค๋ค.
splice ๋ด์ฅํจ์๋ ์ฒซ๋ฒ์งธ ์ธ์๋ก ์๋ฅด๊ธฐ ์์ํ index๋ก ์ฃผ๊ณ , ๋๋ฒ์งธ ์ธ์๋ก๋ ์ด๋๊น์ง ์๋ฅผ ๊ฑด์ง ํ๋ index๋ฅผ ๋ฃ์ด์ฃผ๋ฉด ๋๋๋ฐ ์ด๋ถ๋ถ์์ slice ๋ด์ฅ ํจ์์ ์ฝ๊ฐ์ ์ฐจ์ด๊ฐ ์๊ณ ,
ํฐ ์ฐจ์ด๋ก๋ splice ํจ์๋ ์๋ณธ ๋ฐฐ์ด์์ ์ ๋ง ๊บผ๋ด ์์ง๋ ์ก์ ์ด ์ทจํด์ง๋ค.
์์)
โ ์ฑ์ 2