๋ฌธ์ ๋งํฌ
์ฝ๋ฉํ ์คํธ ์ฐ์ต - ์ผ๊ฐ ๋ฌํฝ์ด
5 [1,2,12,3,13,11,4,14,15,10,5,6,7,8,9] 6 [1,2,15,3,16,14,4,17,21,13,5,18,19,20,12,6,7,8,9,10,11]
programmers.co.kr
์๋ก ๋ฐฐ์ด ๋ด์ฉ
1. Array.from()
-> Array.from() ๋ฉ์๋๋ ์ ์ฌ ๋ฐฐ์ด ๊ฐ์ฒด(array-like object)๋ ๋ฐ๋ณต ๊ฐ๋ฅํ ๊ฐ์ฒด(iterable object)๋ฅผ ์๊ฒ ๋ณต์ฌํด ์๋ก์ด Array ๊ฐ์ฒด๋ฅผ ๋ง๋ญ๋๋ค.
Array.from(arrayLike[, mapFn[, thisArg]])โ
Array(n) ๋ฐฐ์ด์ obj๋ก ๊ฐ๊ณ ์ ํ ๋งค๊ฐ๋ณ์ mapFn์ (_, idx) => Array(idx + 1) ๋ก ์ฌ์ฉํ์ฌ ์ํ๋ ๋ชจ์์ 2์ฐจ์ ๋ฐฐ์ด์ ์ป์ ์ ์์์ต๋๋ค. (ํ์ด ์ปค์ง๋๋ง๋ค 1์ฉ ์ฆ๊ฐํ๋ ์ด์ ๊ฐ์ต๋๋ค.)
(์ฒซ๋ฒ์งธ ์ธ์์ธ "_"์ ๋ถํ์ํ ๊ณต๊ฐ์ ์ฑ์ธ ์ธ์๋ฅผ ์๋ฏธํฉ๋๋ค.)
2. flatMap()
-> flatMap() ๋ฉ์๋๋ ๋จผ์ ๋งคํํจ์๋ฅผ ์ฌ์ฉํด ๊ฐ ์๋ฆฌ๋จผํธ์ ๋ํด map ์ํ ํ, ๊ฒฐ๊ณผ๋ฅผ ์๋ก์ด ๋ฐฐ์ด๋ก ํํํํฉ๋๋ค.
arr.flatMap(callback(currentValue[, index[, array]])[, thisArg])โ
let arr1 = ["it's Sunny in", "", "California"]; arr1.map(x=>x.split(" ")); // [["it's","Sunny","in"],[""],["California"]] arr1.flatMap(x => x.split(" ")); // ["it's","Sunny","in","California"]โ
map๊ณผ flatMap์ ์ฐจ์ด๋ฅผ ๋ณด์ฌ์ฃผ๋ ์ฝ๋ ( ์คํ ๊ฒฐ๊ณผ๋ฅผ 1์ฐจ์ ๋ฐฐ์ด๋ก ํํํ ํ๋ค. )
function solution(n) {
const snail = Array.from(Array(n), (_, idx) => Array(idx + 1));
let increase = 0;
let x = -1;
let y = 0;
let snailHeight = n;
while (snailHeight > 0) {
for (let i = 0; i < snailHeight; i++) snail[++x][y] = ++increase;
for (let i = 0; i < snailHeight - 1; i++) snail[x][++y] = ++increase;
for (let i = 0; i < snailHeight - 2; i++) snail[--x][--y] = ++increase;
snailHeight -= 3;
}
return snail.flatMap((num) => num);
}
'์ฝ๋ฉํ ์คํธ > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Javascript] ์์ ์ต๋ํ (67257) (0) | 2022.06.03 |
---|---|
[Javscript] [1์ฐจ] ๋น๋ฐ์ง๋ (17681) (0) | 2022.05.31 |
[Javascript] ๊ดํธ ํ์ ํ๊ธฐ (76502) (0) | 2022.05.27 |
[Javascript] ์ต์์ง์ฌ๊ฐํ (86491) (0) | 2022.05.27 |
[Javascript] ์นดํซ (42842) (0) | 2022.05.14 |