๋ฐฐ์ด
์ ์
๋ฉ๋ชจ๋ฆฌ ์์ ์์๋ฅผ ์ฐ์ํ๊ฒ ๋ฐฐ์นํ ์๋ฃ๊ตฌ์กฐ
์ฑ์ง
- O(1)์ k๋ฒ์งธ ์์๋ฅผ ํ์ธ/๋ณ๊ฒฝ ๊ฐ๋ฅ
- ์ถ๊ฐ์ ์ผ๋ก ์๋ชจ๋๋ ๋ฉ๋ชจ๋ฆฌ์ ์ overhead๊ฐ ๊ฑฐ์ ์์
- ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ถ์ด์์ผ๋ฏ๋ก cache hit rate๊ฐ ๋์
- ๋ฉ๋ชจ๋ฆฌ ์์ ์ฐ์ํ ๊ตฌ๊ฐ์ ์ก์์ผ ํด์ ํ ๋น์ ์ ์ฝ์ด ๊ฑธ๋ฆผ
์ฐ์ฐ
- ์์์ ์์น ์์ ํ์ธ/๋ณ๊ฒฝ : O(1)
- ์์๋ฅผ ๋์ ์ถ๊ฐ / ๋ง์ง๋ง ์์ ๋ณ๊ฒฝ : O(1)
- ์์์ ์์น์ ์์ ์ถ๊ฐ/์ ๊ฑฐ : O(N) → ๋ค์ ์์๋ค ํ ์นธ ๋ค๋ก ๋ฐ์ด์ผ ํจ
์ด๊ธฐํ
์ ์ญ๋ณ์๋ก ์ ์ธํ ๊ฒฝ์ฐ int๋ 0์ผ๋ก ์ด๊ธฐํ
์ง์ญ๋ณ์๋ ์ฐ๋ ๊ธฐ๊ฐ ๋ค์ด๊ฐ๊ธฐ ๋๋ฌธ์ { } ๋ฑ์ผ๋ก ์ด๊ธฐํํด์ผ ํจ
int a[21];
int b[21][21];
- memset (๋น์ถ์ฒ)
memset(a, 0, sizeof a);
memset(b, 0, sizeof b);
- for
for (int i=0; i<21; i++) a[i] = 0;
for (int i=0; i<21; i++)
for (int j=0; j<21; j++)
b[i][j] = 0;
- fill (์ถ์ฒ) : algorithm ํค๋
fill(a, a+21, 0);
for (int i=0; i<21; i++)
fill(b[i], b[i] + 21, 0);
Vector
- insert → O(N)
v.insert(v.begin() + start_idx, value);
- delete → O(N)
v.erase(v.begin() + start_idx);
- vector์์์ =๋ deep copy → ๋ณต์ฌ๋ณธ ๋ฐ๊ฟ๋ ์๋ณธ์ ์ํฅ X
range-based for loop
- ๋ณต์ฌ๋ณธ
for (int num : numbers) -> num ๊ฐ ๋ฐ๊ฟ๋ numbers์ ์ํฅ X
- ์๋ณธ
for (int& num : numbers) -> num ๊ฐ ๋ฐ๊พธ๋ฉด numbers์ ๋ฐ์
for loop : ์๋ชป๋ ์์
๊ธฐ๋ณธ์ ์ผ๋ก vector.size()๋ unsigned int์
(unsigned int) 0 - (int) 1 → overflow ๋ฐ์
for (int i=0; i<=v1.size() - 1; i++)
cout << v[i] << ' ';
'โจ Algorithm > ๐โ๐ฆบ ๋ฐํน๋ ๊ฐ๋ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[0x06] ํ (0) | 2023.06.20 |
---|---|
[0x05] ์คํ (0) | 2023.06.20 |
[0x04] ์ฐ๊ฒฐ๋ฆฌ์คํธ (0) | 2023.06.20 |
[0x02] ๊ธฐ์ด ์ฝ๋ ์์ฑ ์๋ น 2 (0) | 2023.06.20 |
[0x01] ๊ธฐ์ด ์ฝ๋ ์์ฑ ์๋ น 1 (0) | 2023.06.20 |
๋๊ธ