์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- ์๋ฐ์คํฌ๋ฆฝํธ
- ์ฝ๋ฉํ ์คํธ
- ํ๋ก๊ทธ๋๋จธ์ค
- history api
- ๋ฐ๋ธ์ฝ์ค3๊ธฐ
- ํ๋ก ํธ์๋
- position
- ๋ธ๋ก๊ทธ
- ์๊ณ ๋ฆฌ์ฆ
- ๋ฐ๋ธ์ฝ์ค
- CSS
- REACT
- useRef
- useEffect
- Props
- fetch API
- Flex
- Gatsby
- float
- Today
- Total
Daehyunii's Dev-blog
02 ๋ฐฐ์ด๊ณผ ๊ฐ์ฒด์ ์ฑ๋ฅ ํ๊ฐ ๋ณธ๋ฌธ
02 ๋ฐฐ์ด๊ณผ ๊ฐ์ฒด์ ์ฑ๋ฅ ํ๊ฐ
Daehyunii 2022. 8. 1. 22:27์ด๋ฒ ๊ฐ์์์๋ ๋น ์ค์ ์์ ์์ ๊ฐ์ฒด์ ๋ฐฐ์ด์ด ์ด๋ป๊ฒ ์๋๋๋์ง, ์ ๋ฐฐ์ด์ ์์ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ๋๊ฒ์ด ์์ข์ ๊ฒ์ธ์ง, ๋ ๋ฉ์๋๋ค์ ๋น ์ค์ ๊ด์ ์์ ์ด๋ป๊ฒ ํํ๋๋์ง ํ์ธํด๋ณด์๋ค.
2.1 ๊ฐ์ฒด์ ๋น ์ค
let instructor = {
firstName : "mark",
inInstructor : true,
favoriteNumbers : [1,2,3,4,5]
};
์ฐ์ ๊ฐ์ฒด๋ ๋ฐ์ดํฐ๊ฐ ์ ๋ ฌ๋์ด ์์ ํ์๊ฐ ์์๋, ๋น ๋ฅธ ์ ๊ทผ, ์ ๋ ฅ ๊ทธ๋ฆฌ๊ณ ์ ๊ฑฐ๋ฅผ ์ํ ๋ ์ข๋ค. ํ๋ง๋๋ก ์ ๋ ฌ๋์ด ์์ง๋ ์์ง๋ง ๊ทธ ์ธ์ ๊ฒ๋ค์ ์ฒ๋ฆฌ ์๋๊ฐ ๋งค์ฐ ๋น ๋ฅด๋ค. ์ด๋ฅผ ๋น ์ค ํ๊ธฐ๋ฒ์ ๊ด์ ์์๋ ์ ๋ ฅ,์ ๊ฑฐ,์ ๊ทผ์ O(1)์ ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ๋๋ค. ์ฆ ์๋ฐ์คํฌ๋ฆฝํธ์ ๊ฐ์ฒด๋ ์ด๋ค ์ ๋ณด๋ ์์ ์๊ฐ์์ ์ ์ฅํ ์ ์๊ณ , ์ํ๋ ๋ด์ฉ์ ์์ ์๊ฐ์์ ๋ถ๋ฌ์ฌ ์๋ ์์ผ๋ฉฐ ํน์ ํ๋กํผํฐ๋ฅผ ์์ ์๊ฐ์์ ์์ ํ ์๋ ์๋ค๋ ๋ง์ด๋ค. ๊ทธ๋ฌ๋ ์ฃผ์ํด์ผํ ๊ฒ์ ํ์์ O(N)์ ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ๋๋ค. ํ๋กํผํฐ ํค๋ฅผ ํตํด ํ๋ ํ๋ ๊ฐ์ ๋ค ํ์ธํด์ผ ํ๊ธฐ ๋๋ฌธ์ด๋ค. ์ฆ, ๋ฐ์ดํฐ์ ์์ด ๋ง์ผ๋ฉด ๋ง์์๋ก ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฌ๋ฏ๋ก O(N)์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ๋๋ค.
2.2 ๊ฐ์ฒด ๊ด๋ จ ๋ฉ์๋
1. Object.keys - O(N)
ํ๋กํผํฐ๊ฐ ๋์ด๋๋ฉด ๋์ด ๋ ์๋ก ๋์ดํด์ผ ํ๋ ํ๋กํผํฐํค๊ฐ ๋ง์์ง๊ธฐ ๋๋ฌธ์ด๋ค.
2. Object.values - O(N)
Object.keys์ ๋์ผํ ์ด์ ๋ค.
3. Object.entries - O(N)
Object.keys์ ๋์ผํ ์ด์ ๋ค.
4. hasOwnProperty - O(1)
์๋ฅผ๋ค์ด firstName์ด๋ผ๋ ์์ฑ์ ์ ๋ฌํ๋ฉด, firstName ์์ฑ์ด ์๋์ง ์๋์ง๋ง ๋ถ๋ฆฌ์ธ ๊ฐ์ผ๋ก ๋ฐํํด์ฃผ๊ธฐ ๋๋ฌธ์ด๋ค.
2.3 ๋ฐฐ์ด์์ ๋ฐ์ดํฐ์ ์ ๊ทผ์ด ๋๋ฆฐ ์ด์
let names = ['Danny','Jessie','Andy'];
let values = [true, {}, [], 2, "hello"];
๋ฐฐ์ด์ ๊ฐ์ฅ ์ค์ํ์ ์ ๋ณด์๋ฉด ์ ๋ ฌ์ด ๋์ด ์๋ค๋ ๊ฒ์ด๋ค. ๊ทธ๋ฌ๋ ์ฐ์ฐ์ ์๊ฐ์ด ๋ ๊ฑธ๋ฆด ์๋ ์๋ค.(๋ฐฐ์ด์ ์ธ๋ฑ์ค๋ฅผ ๊ฐ๊ธฐ ๋๋ฌธ) ๋ฐฐ์ด์ ํน์ ๊ฐ์ ํ์ํ๋ ๊ฒ์ O(N)์ ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ๋๋ค. ๋ฐฐ์ด์์ ํน์ ๊ฐ์ด ์๋์ง ํ๋ ํ๋ ํ์ธํด์ผ ํ๊ธฐ ๋๋ฌธ์ด๋ค. ๊ทธ๋ฌ๋ ์ ๊ทผ์ O(1)์ ์๊ฐ ๋ณต์ก๋๋ฅผ ๊ฐ๋๋ค. (์ธ๋ฑ์ค๋ฅผ ๊ฐ๊ธฐ ๋๋ฌธ์ 0๋ถํฐ ์ํ๋ ๊ฐ์ ๋๋ฌํ ๋๊น์ง ํ๋ ํ๋ ํ์ธํ๋ ๊ฒ์ด ์๋๋ค. ์ธ๋ฑ์ค๋ฅผ ํตํด ๋ฐ๋ก ์ฐพ์ ๋ค์ด๊ฐ ์ ์๋ค.) ๊ทธ๋ฌ๋ ์ฝ์ธ์ด๋ ์ ๊ฑฐ์ ๊ฒฝ์ฐ์๋ ์ด๋์ ์์นํ๋์ ๋ฐ๋ผ ์๊ฐ ๋ณต์ก๋๊ฐ ๋ฌ๋ผ์ง ์ ์๋ค. ์ด๋ฌํ ๋ฌธ์ ๊ฐ ์๊ธฐ๋ ์ด์ ๋ ์ธ๋ฑ์ค๊ฐ ์กด์ฌํ๊ธฐ ๋๋ฌธ์ด๋ค. ๋ฐฐ์ด์ ๋งจ ๋ค์ ๊ฐ์ ์ถ๊ฐํ๊ฑฐ๋ ์ญ์ ํ๋๊ฒ์ O(1)๋ณต์ก๋๋ฅผ ๊ฐ๊ฒ ์ง๋ง, ๊ฐ์ ๋ฐฐ์ด์ ๋งจ ์์ด๋ ์ค๊ฐ์ ๋ถ์ด๋ ๊ฒฝ์ฐ์๋ ์ธ๋ฑ์ค๋ฅผ ๋ค ์ฎ๊ฒจ์ผ ํ๊ธฐ ๋๋ฌธ์ O(N)๋ณต์ก๋๋ฅผ ๊ฐ๋๋ค.
2.4 ๋ฐฐ์ด์ ๋ฉ์๋๋ค์ ๋น ์ค ๊ด์ ์์ ์ดํด๋ณด๊ธฐ
1. push - O(1) ๋ฐฐ์ด์ ๋งจ ๋ค์ ๊ฐ์ ์ถ๊ฐํ๋ฏ๋ก
2. pop - O(1) ๋ฐฐ์ด์ ๋งจ ๋ค ๊ฐ์ ์ญ์ ํ๋ฏ๋ก
3. shift - O(N) ์ธ๋ฑ์ค๋ฅผ ๋ค ๋ฐ๊ฟ์ค์ผ ํ๋ฏ๋ก
4. unshift - O(N) ์ธ๋ฑ์ค๋ฅผ ๋ค ๋ฐ๊ฟ์ค์ผ ํ๋ฏ๋ก
5. concat - O(N) ์ฌ๋ฌ ๋ฐฐ์ด์ ํฉ์น๊ธฐ ๋๋ฌธ
6. slice - O(N) ๋ฐฐ์ด์ ์ผ๋ถ๋๋ ์ ๋ถ๋ฅผ ๊ฐ์ ธ์ค๊ธฐ ๋๋ฌธ
7. splice - O(N) ์์๋ฅผ ์ ๊ฑฐํ๊ณ ์ถ๊ฐํ๊ธฐ ๋๋ฌธ์ ์ธ๋ฑ์ค๋ฅผ ๋ค ๋ฐ๊ฟ์ค์ผ ํ๋ฏ๋ก
8. sort - O(N*log N) ์์ธํ๊ฑด ํ์ ์์
9. forEach/map/filter/reduce/etc. - O(N) ์์๋ง๋ค ํ๋์ฉ ์์ ์ ์คํํด์ผ ํ๋ฏ๋ก ๋ฐฐ์ด์ด ์ปค์ง์๋ก ๊ฑธ๋ฆฌ๋ ์๊ฐ๋ ๋น๋กํจ
์ฌ๊ธฐ์ ๊ฒฐ๋ก ์ ์ผ๋ก ๊ฐ์ฅ ์ค์ํ๊ฒ์ ๊ฐ์ฒด๋ ๊ฑฐ์ ๋ชจ๋ ๊ฒ์ ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌํ์ง๋ง, ์ ๋ ฌ๋์ด ์์ง ์๋ค. ๋ฐฐ์ด์ ์ ๋ ฌ๋์ด ์์ง๋ง ๋ฐฐ์ด์ ๋์ ์์๋ฅผ ์ถ๊ฐํ๊ณ ์ญ์ ํ๋๊ฒ์ ๋น ๋ฅผ์ง ๋ชจ๋ฅด์ง๋ง ๋ฐฐ์ด์ ์์ด๋ ์ค๊ฐ์ ์์๋ฅผ ์ถ๊ฐํ๊ณ ์ ๊ฑฐํ๋ ์๊ฐ์ ์ฐ์ฐ์ ํ์์ ๋น๋กํด ์ฆ๊ฐํ๋ค๋ ๊ฒ์ด๋ค.(์ธ๋ฑ์ค ๋๋ฌธ์)
'๐ Language & CS knowledge > Algorithm & Data structure' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
06 ๊ฒ์ ์๊ณ ๋ฆฌ์ฆ (0) | 2022.08.05 |
---|---|
05 ์ฌ๊ท (0) | 2022.08.04 |
04 ๋ฌธ์ ํด๊ฒฐ ํจํด (0) | 2022.08.04 |
03 ๋ฌธ์ ํด๊ฒฐ ์ ๊ทผ๋ฐฉ๋ฒ (0) | 2022.08.04 |
01 ๋น ์ค ํ๊ธฐ๋ฒ(Big O) (0) | 2022.08.01 |