์ฌ๊ทํจ์ ๋ฌธ์ :
๋ค์ฐจ์ ๋ฐฐ์ด์ ์ ๋ ฅ๋ฐ์ 1์ฐจ์ ๋ฐฐ์ด๋ก ๋ณํํ์ฌ ๋ฆฌํด
let output = flattenArr([[1], 2, [3, 4], 5]);
console.log(output); // --> [1, 2, 3, 4, 5]
output = flattenArr([[2, [[3]]], 4, [[[5]]]);
console.log(output); // --> [2, 3, 4, 5]
let resultArr = [];
if (arr.length === 0) {
return [];
}
for (let i = 0; i < arr.length; i++) {
if (Array.isArray(arr[i])) {
const result = flattenArr(arr[i]);
resultArr.push(...result);
} else {
resultArr.push(arr[i]);
}
}
return resultArr;
์ด ๋ฌธ์ ๋ฅผ ๋ณต์ตํ๋ฉด์ spread syntax ์ ๋ํด ๋ค์ ์ง๊ณ ๋์ด๊ฐ ์ ์์๋ค.
๊ทผ๋ฐ ์ฌ์ค ๋ด๊ฐ ์ฒ์ ํ์์ ๋๋ ์ ํ ๋ค๋ฅธ ์ฝ๋๋ก ํ์๋ค.
return arr.reduce(function(acc, cur) {
return acc.concat(Array.isArray(cur) ? flattenArr(cur) : cur);
},[]);
}
reduce ๋ฉ์๋๋ฅผ ํ์ฉํ ์ฌ๊ทํจ์ ํ์ด๋ฐฉ์์ด๋ค. ๋ค๋ฅธ ๊ฐ๋์์ ๋ฌธ์ ๋ฅผ ํ์ด๋ณด์๋ค.
์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ :
๋ฌธ์์ด์ ์ ๋ ฅ๋ฐ์ ์์ด์๊ทธ๋จ(isogram)์ธ์ง ์ฌ๋ถ๋ฅผ ๋ฆฌํดํด์ผ ํฉ๋๋ค. ๊ฐ ์ํ๋ฒณ์ ํ๋ฒ์ฉ๋ง ์ด์ฉํด์ ๋ง๋ ๋จ์ด๋ ๋ฌธ๊ตฌ๋ฅผ ๋งํฉ๋๋ค.
let output = isIsogram("aba");
console.log(output); // false
output = isIsogram("Dermatoglyphics");
console.log(output); // true
if (str === "") {
return true;
}
let upper = str.toUpperCase();
for (let i = 0; i < upper.length; i++) {
for (let j = i + 1; j < upper.length; j++) {
if (upper[i] === upper[j]) {
return false;
}
}
}
return true;
๋๋ ์ด๋ฌํ ๋ฐฉ์์ผ๋ก ๋ฌธ์ ๋ฅผ ํ์ด ๋ณด์๋ค. ํ์ง๋ง ๋ ํผ๋ฐ์ค ์ฝ๋๋ for loop ๋ฅผ ํ ๋ฒ๋ง ํ์ฉํ์๋ค.
if (str.length === 0) {
return true;
}
let cache = {};
let strLowered = str.toLowerCase();
for (let i = 0; i < strLowered.length; i++) {
if (cache[strLowered[i]]) {
return false;
}
cache[strLowered[i]] = true;
}
return true;
์๋ฌด๋๋ for loop ๋ฅผ ํ ๋ฒ๋ง ํ์ฉํ์ผ๋๊น ๋ ํผ๋ฐ์ค ์ฝ๋๊ฐ ๋ ์ข์ ์ฝ๋์ผ๊น?
๋ ํผ๋ฐ์ค ์ฝ๋๋ฅผ ๋ณด๊ณ โ์~ ์ ๋ ๊ฒ๋ ํ ์ ์๊ตฌ๋๋ฅผ ๋๊ผ๋คโ ๋ฌธ์ ๋ฅผ ํ ๋๋ ์ฝ๊ฒ ํ์์ง๋ง
๋ ํผ๋ฐ์ค ์ฝ๋๋ฅผ ๋ณด๋ฉด์ ๋ค๋ฅธ ๊ฐ๋์์ ์ฝ๋๋ฅผ ๋ณด๋ ๋ฒ๋ ๋ฐฐ์ฐ๊ฒ ๋์๋ค.
๐ ๋ด์ผ์ TIW(today I Will)
DOM, ์ ํจ์ฑ ๊ฒ์ฌ