๐Ÿ’ป์šฉ๋‡ฝ ๊ฐœ๋ฐœ ๋…ธํŠธ๐Ÿ’ป
article thumbnail
๋ฐ˜์‘ํ˜•

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ 2์ฐจ์›์œผ๋กœ ๋งŒ๋“ค๊ธฐ ๋ฌธ์ œ ํ’€์ด

๐Ÿ“– ๋“ค์–ด๊ฐ€๋ฉฐ

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์—์„œ ์—ฐ์Šต๋ฌธ์ œ '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

ํ’€์ด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

ํ’€์ด2 ์ฑ„์ 

 

๋ฐ˜์‘ํ˜•
profile

๐Ÿ’ป์šฉ๋‡ฝ ๊ฐœ๋ฐœ ๋…ธํŠธ๐Ÿ’ป

@์šฉ๋‡ฝ

ํฌ์ŠคํŒ…์ด ์ข‹์•˜๋‹ค๋ฉด "์ข‹์•„์š”โค๏ธ" ๋˜๋Š” "๊ตฌ๋…๐Ÿ‘๐Ÿป" ํ•ด์ฃผ์„ธ์š”!