์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- ์นด์นด์ค ์ฝํ
- ๋ฐฑ์ค 1339๋ฒ nodejs
- js
- ๋ฐฑ์ค 1339๋ฒ js
- ์ค์ฝํ
- js ๋ฌธ์์ด ์์ถ
- js ์ค์ฝํ
- emtion app router
- ์๋ฐ์คํฌ๋ฆฝํธ ๋ฌธ์์ด ์์ถ
- emotion RSC
- ์ฌ์ฉ์ฑ ๊ฐ์
- next13 emotion
- TypeError: createContext only works in Client Components. Add the "use client" directive at the top of the file to use it. Read more:
- ํ๋ก๊ทธ๋๋จธ์ค ๋ฌธ์์ด ์์ถ
- ๋ฆฌ์กํธ์ฟผ๋ฆฌ suspense
- ๊ตฌ๋ฆํค
- ๋ฐฑ์ค 1339๋ฒ ์๋ฐ์คํฌ๋ฆฝํธ
- ๋ฐฑ์ค 2108 ์๋ฐ์คํฌ๋ฆฝํธ
- ์ต์ ๋์ฒด์ด๋
- js ๊ฑฐ๋ฆฌ๋๊ธฐ ํ์ธํ๊ธฐ
- suspense ๋์์๋ฆฌ
- suspense ๋ณ๋ชฉํ์
- ๊ตฌ๋ฆํค ์ฑ๋ฆฐ์ง ํ๊ณ
- suspense react-query
- ๊ตฌ๋ฆํค ์ฑ๋ฆฐ์ง
- suspense ๋น๋๊ธฐ
- app router emotion
- ๋ฐฑ์ค 2108 nodejs
- ์๋ฐ์คํฌ๋ฆฝํธ ์ค์ฝํ
- ํ๋ก๊ทธ๋๋จธ์ค ๊ฑฐ๋ฆฌ๋๊ธฐ ํ์ธํ๊ธฐ
- Today
- Total
Lennon FE
[JS] ์๋ฐ์คํฌ๋ฆฝํธ ๋ฐฐ์ด ์๊ฐ ๋ณต์ก๋ ๋ณธ๋ฌธ
์๋ฐ์คํฌ๋ฆฝํธ ๋ฐฐ์ด ๋ฉ์๋์ ์๊ฐ ๋ณต์ก๋๋ฅผ ์์๋ณด์.
์๊ฐ ๋ณต์ก๋๋ฅผ ํ๊ธฐํ ๋ ๋์ฒด๋ก ๋น ์ค ํ๊ธฐ๋ฒ์ผ๋ก ์ฌ์ฉํ๋ค.
๋น ์ค ํ๊ธฐ๋ฒ์ ๋ํด ๊ฐ๋จํ๊ฒ ์ค๋ช ํ์๋ฉด
O(1)
์์ ์๊ฐ ๋ณต์ก๋์ด๋ค.
function twoUp(num) {
return num+num;
}
num์ ์ด๋ค ์๊ฐ ๋ค์ด์๋ + ํ๋ฒ์ ์ฐ์ฐ์ ์๋ํ๋ค. ์ฐ์ฐ์ด ์ฌ๋ฌ ๋ฒ ์ํ๋๋ ์๊ฐ ๋ณต์ก๋๋ O(1)๋ก ๋์ผํ๋ค.
๋ฌดํ๋๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ดค์ ๋ ๊ทธ๋ํ ํ์์ ๋น์ทํ๊ธฐ ๋๋ฌธ์ ๋์ผํ๊ฒ ํ๊ธฐํ๋ ๊ฑธ ๊ท์น์ผ๋ก ํ๋ค.
function upupup(num) {
return num+num+num+num+num+num+num+num+num+num+num+num+num+num+num;
}
O(logN)
logN๋งํผ์ ์๊ฐ ๋ณต์ก๋์ด๋ค. ๊ฐ๋จํ ์๋ก 2๊ฐ์ ์์๋ ธ๋๋ฅผ ๊ฐ์ง๋ ์ด์งํธ๋ฆฌ๋ฅผ ์ด์ฉํด 8๊ฐ์ ๋ ธ๋์ค ์ํ๋ ๊ฐ์ ๋ ธ๋๋ฅผ ์ฐพ๋๋ค๊ณ ์๊ฐํด๋ณด์. ๊ทธ๋ผ 2๊ฐ์ ์์๋ ธ๋๋ก ์ธํด 8 => 4 => 2 => 1 ์์๋ก ์ฐพ์ ์ ์์ ๊ฒ์ด๋ค. ์ด๋ ๋์ค์ ๋ฐ๋ก ์ ๋ฆฌํด๋ณด๊ฒ ์ต๋๋ค.
O(N)
n๋งํผ์ ์๊ฐ ๋ณต์ก๋์ด๋ค. ๊ฐ๋จํ๊ฒ for๋ฌธ์ ์๊ฐํ๋ฉด ๋๋ค.
function count(num) {
let count = 0;
for(let i = 1; i <= num; i++){
if(i%2 === 1) {
count += 1;
}
}
return count;
}
O(1)๊ณผ ๋ค๋ฅด๊ฒ num์ด 10,000์ด๋ผ๋ฉด 10,000๋ฒ ์ํํ๊ณ , 1,000,000์ด๋ผ๋ฉด 1,000,000๋ฒ ์ํํ๋ค. ์ฆ num๋งํผ ์ํํ๋ฏ๋ก O(n)์ผ๋ก ํ๊ธฐํ ์ ์๋ค. ๋ง์ฐฌ๊ฐ์ง๋ก 4๊ฐ์ for๋ฌธ์ด ์์ด๋ O(4n)์ด ์๋๋ผ ๊ทธ๋ฅ O(n)์ผ๋ก ํ๊ธฐํ๋ค.
O(NlogN)
N*logN๋งํผ์ ์๊ฐ ๋ณต์ก๋, ๋ฐ์์ ์ ๋ ฌ ํํธ์์ ์ค๋ช ํ๊ฒ ์ต๋๋ค.
O(N^2)
n^2๋งํผ์ ์๊ฐ ๋ณต์ก๋ ๋ํ์ ์ผ๋ก 2์ค for๋ฌธ์ด ์๋ค.
function matrix(num) {
const mat = [];
for(let i = 0; i < num; i++){
const row = [];
for(let j = 0; j < num; j++) {
row.push([i,j]);
}
mat.push(row);
}
}
์ ์ฝ๋์์ num์ด 1000์ด๋ผ ์๊ฐํด๋ณด์, ์ผํ ๋ด๋ 1,000,000๋ฒ ์คํ๋๋ค๋ ๊ฑธ ์ ์ ์๋ค. ๋ค๋ฅธ ๋ณต์ก๋์ ๋นํด ๋ง์ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋ฏ๋ก
์ํ์ ๊ณต์ ๋ฑ์ ํ์ฉํด ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ๋ ๊ฒ ์ข๋ค.
๋ฐฐ์ด์์์ ์๊ฐ ๋ณต์ก๋
์ฐ์ ๋ฐฐ์ด์์ ์ฐ๋ฆฌ๊ฐ ์์ฃผ ์ฌ์ฉํ๋ ํจ์ ๋ฐ ๋ฉ์๋๋ค์ ์ดํด๋ณด์.
push | ๋ฐฐ์ด์ ๋งจ ๋์ ๊ฐ์ ์ฝ์ ํ๋ค. |
pop | ๋ฐฐ์ด์ ๋งจ ๋์ ๊ฐ์ ์ญ์ ํ๋ค. |
shift | ๋ฐฐ์ด์ ๋งจ ์์ ๊ฐ์ ์ฝ์ ํ๋ค. |
unshift | ๋ฐฐ์ด์ ๋งจ ์์ ๊ฐ์ ์ญ์ ํ๋ค. |
concat | ๋ฐฐ์ด์ ์ด์ด์ค๋ค. |
slice | ๋ฐฐ์ด์ ์ง์ ํด๋์ ์์ญ๋ถ๋ถ์ผ๋ก ์๋ฅธ๋ค. |
splice | ๋ฐฐ์ด์ ์ง์ ํด๋์ ์ธ๋ฑ์ค์ ๊ฐ๋ค์ ์ถ๊ฐํ๊ฑฐ๋, ์๋ฅธ๋ค. |
sort | ๋ฐฐ์ด์ ์ ๋ ฌํ๋ค. |
forEach, map, filter, reduce | ๋ฐฐ์ด์ ์ฌ์ฉํ๋ ์ฃผ ๋ฉ์๋ ๋ค |
push, pop : O(1)
๋ฐฐ์ด์ ์ฐ๋ฆฌ๊ฐ ์๋ค์ํผ ์ธ๋ฑ์ค๋ฅผ ๊ฐ์ง๋ค. ์ฒซ ์์์ 0, ๋์ ์ธ๋ฑ์ค ๊ฐ์ ๋ฐฐ์ด์ ๊ธธ์ด -1์ด๋ค. push, pop์ ๋ฐฐ์ด์ ๋งจ ๋์ ๊ฐ์ ์ถ๊ฐ ๋ฐ ์ญ์ ํ๋ฏ๋ก ์ธ๋ฑ์ค ํ๋๋ง ์ง์ ํด์ฃผ๊ฑฐ๋ ์ญ์ ํ๋ฉด ๋๋ค. ์๊ฐ ๋ณต์ก๋๋ O(1) ์ด๋ค.
shift, unshift : O(N)
์์๋ค ๊ฐ์ ์ฝ์ ํ๊ฑฐ๋ ์ญ์ ํ๋ shift, unshift๋ ๋ฐฐ์ด์ ์ธ๋ฑ์ค์ ๋ง์ ์ํฅ์ ๋ผ์น๋ค. ์๋ก ์์ ๊ฐ์ ์ถ๊ฐํ๋ค๊ณ ์๊ฐํด๋ณด์.
[ 1, 2, 3, 4, 5 ]
0 1 2 3 4
ํด๋น ๋ฐฐ์ด ์์ 0 ๊ฐ์ ์ถ๊ฐํ๋ฉด ์ธ๋ฑ์ค๋ ์์ผ๋ก ํ ์นธ์ฉ ๋ฐ๋ฆฌ๊ณ ๋ค์ ํ๋๊ฐ ์ถ๊ฐ๋ ๊ฒ์ด๋ค.
[ 0, 1, 2, 3, 4, 5 ]
0 1 2 3 4 5
์ด๋ ๊ฒ ๊ฐ์ ์์ ์ถ๊ฐํจ์ผ๋ก ์ธํด ์ ์ฒด ์ธ๋ฑ์ค๊ฐ ๋ฐ๋๋ฏ๋ก ์๊ฐ ๋ณต์ก๋๋ O(N) ์ด๋ค.
concat, slice, splice : O(N)
๋ฐฐ์ด์ ์ด์ด์ฃผ๊ณ , ์๋ฅด๊ณ , ๊ฐ์ ์ถ๊ฐํ๋ฉด ์ธ๋ฑ์ค๋ฅผ ์กฐ์ ํด์ค์ผํ๋ฏ๋ก O(N)์ผ๋ก ์๊ฐํ๋ฉด ํธํ๋ค.
forEach, map, filter, reduce : O(N)
๋ฐฐ์ด์ ๋ฉ์๋๋ ๊ฒฐ๊ตญ ๋ฐฐ์ด์ ๊ธธ์ด๋งํผ ๋ฐฐ์ด์ ์ํํด์ผํ๋ฏ๋ก O(N)์ผ๋ก ์๊ฐํ๋ฉด ๋๋ค.
sort : O(NlogN)
์ธ์๊ฐ์ผ๋ก ๋์ด์จ ํจ์์ ๋ฐ๋ผ ๊ฐ์ ์ ๋ ฌํ๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๋ด์ฅ sort๋ฅผ ์ฌ์ฉํ ๋ ํฌ๋กฌ์์ ํต ์ ๋ ฌ์ ์ฌ์ฉํ๋ค.
ํ๊ท ์ ์ผ๋ก NlogN์ ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋ค. ์์ธํ ๊ฑด ๋ค์์ ์ ๋ ฌ์ ๋ํ ์๊ฐ๋ณต์ก๋๋ฅผ ์์๋ณผ ๋ ํฌ์คํ ํ๋๋ก ํ๊ฒ ์ต๋๋ค.
const arr = [1,26,76,85,3];
arr.sort((a, b) => a - b);
console.log(arr) // [1, 3, 26, 76, 85]
๋ฐฐ์ด์ ๋ด์ฅ ํจ์ ๋ฐ ๋งค์๋์ ๋ํ ์๊ฐ ๋ณต์ก๋๋ฅผ ์์๋ดค๋ค. ์ ๋งํด์ shift, unshift๋ณด๋ค๋ push, pop์ ์ด์ฉํ๋ ๊ฒ ์๊ฐ์ ์ผ๋ก ์ ๋ฆฌํ ๊ฑธ ์ ์ ์๋ค.