Big O Notation (๋น ์ค ํ๊ธฐ๋ฒ)
์ปดํจํฐ ๊ณผํ์๋ ์๋ก ๊ฐ์ ์๊ฐ ๋ณต์ก๋๋ฅผ ์ฝ๊ฒ ์ํตํ ๋ชฉ์ ์ผ๋ก ์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ์ ํจ์จ์ฑ์ ๊ฐ๊ฒฐํ๊ณ ์ผ๊ด๋ ์ธ์ด๋ก ์ค๋ช ํ๊ธฐ ์ํด ์ํ์ ๊ฐ๋ ์ ์ฐจ์ฉํ๋ค. ์ด๋ฐ ๊ฐ๋ ์ ํ์ํํ ๊ฒ์ด ๋น ์ค ํ๊ธฐ๋ฒ์ด๋ฉฐ. ์ด๊ฒ์ ์ฌ์ฉํด์ฌ ์ฃผ์ด์ง ์๊ณ ๋ฆฌ์ฆ์ ํจ์จ์ฑ์ ์ฝ๊ฒ ๋ถ๋ฅํ๊ณ ์ดํด์ํฌ ์ ์๋ค. ๊ฐ๋จํ๊ฒ ๋งํ์๋ฉด ์๊ณ ๋ฆฌ์ฆ์ ํจ์จ์ฑ์ ๋ถ์ํ๊ธฐ ์ํด ์ปดํจํฐ ๊ณตํ์๋ค์ด ์ฐ๋ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๋๊ตฌ ์ค ํ๋์ด๋ค.
๋น ์ค๋ ํน์ ๋ฐฉ์์ผ๋ก ์๊ณ ๋ฆฌ์ฆ์ ํ์ํ ๋จ๊ณ ์๋ฅผ ๊ณ ๋ คํจ์ผ๋ก์จ ์ผ๊ด์ฑ์ ์ ์งํ๋ค. ๊ทธ๋ฆฌ๊ณ ๋จ์ํ ์๊ณ ๋ฆฌ์ฆ์ ํ์ํ ๋จ๊ณ ์๋ง ์๋ ค์ฃผ์ง ์๋๋ค. ๋ฐ์ดํฐ๊ฐ ๋์ด๋ ๋ ๋จ๊ณ ์๊ฐ ์ด๋ป๊ฒ ์ฆ๊ฐํ๋์ง ์ค๋ช ํ๋ค.
๋น ์ค ์นดํ ๊ณ ๋ฆฌ
O(N) : ์ ํ์๊ฐ์ ๊ฐ๋ ์๊ณ ๋ฆฌ์ฆ. ๋ฐ์ดํฐ ์ค๊ฐ๊ฐ ์ฑ๋ฅ์ ์ํฅ์ ์ค๋ค. ์ ํํ๋ ๋ฐ์ดํฐ๊ฐ ๋์ด๋ ๋ ์ ํํ ๊ทธ ๋ฐ์ดํฐ์ ๋น๋กํด์ ๋จ๊ณ ์๊ฐ ์ฆ๊ฐํ๋ ์๊ณ ๋ฆฌ์ฆ์ ํ์ด๋ค.
O(1) : ์์ ์๊ฐ์ ๊ฐ๋ ์๊ณ ๋ฆฌ์ฆ. "๊ฐ์ฅ ๋น ๋ฅธ" ์๊ณ ๋ฆฌ์ฆ ์ ํ์ผ๋ก ๋ถ๋ฅ. ๋ฐ์ดํฐ๊ฐ ๋์ด๋๋ ๋จ๊ณ์ ์๊ฐ ์ฆ๊ฐํ์ง ์๋๋ค.
O(logN) : "์ค ๋ก๊ทธ N". ๋ก๊ทธ ์๊ฐ์ ์๊ฐ ๋ณต์ก๋. ๋ฐ์ดํฐ๊ฐ ๋ ๋ฐฐ๋ก ์ฆ๊ฐํ ๋๋ง๋ค ํ ๋จ๊ณ์ ๋์ด๋๋ ์๊ณ ๋ฆฌ์ฆ์ ์ค๋ช ํ๋ ๋น ์ค.
O(nยฒ) : ์ด์ฐจ์๊ฐ ์๊ณ ๋ฆฌ์ฆ. n์ด ์ฆ๊ฐํ ๋๋ง๋ค ๋จ๊ณ ์๊ฐ nยฒ ๋งํผ ๋์ด๋๋ค๊ณ ๋ณด๋ฉด๋๋ค. ๊ฐ์ด n๊ฐ ์ด๋ฏ๋ก nยฒ ๊ฐ ํ์ํ๋ค.
O(n log n) : ๋ฐฐ์ด์ ์์๊ฐ n๊ฐ ์ผ ๋ ์ ๋ ฌ์ ํ์ํ ๋จ๊ณ์๋ n x logN์ด๋ค.
O(2แดบ) : ๊ฐ์ฅ ๋๋ฆฐ ๋น ์ค. O(logN)์ ๋ฐ๋์ด๋ค. ๋ฐ์ดํฐ๊ฐ 1์ฉ ์ปค์ง ๋ ์๊ณ ๋ฆฌ์ฆ์ ํ์ํ ๋จ๊ณ์๋ ๋๋ต 2๋ฐฐ์ฉ ๋์ด๋๋ ๊ฒ.
๋น ์ค ํ๊ธฐ๋ฒ ์์
O(N) : for๋ฌธ
O(1) : Stack (push, pop)
O(logN) : ์ด์ง ๊ฒ์
O(nยฒ) : ์ด์ค๋ฐ๋ชฉ๋ฌธ, ์ฝ์ ์ ๋ ฌ, ๋ฒ๋ธ์ ๋ ฌ,์ ํ์ ๋ ฌ
O(n log n) : ํต ์ ๋ ฌ, ๋ณํฉ์ ๋ ฌ, ํ์ ๋ ฌ
O(2แดบ) : ํผ๋ณด๋์น ์์ด. (์ํธํฌ๋์ปค๋ฌธ์ )
'๊ฐ๋ฐ > ๐ฌ ์ฝ๋ฉํ ์คํธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[leetCode/Javascript] 2363. Merge Similar Items (0) | 2024.02.27 |
---|---|
[leetCode/Javascript] 1572. Matrix Diagonal Sum (0) | 2024.02.13 |
[leetCode/Javascript] 2418. Sort the People (1) | 2024.02.11 |
[LeetCode/Javascript] 216. Combination Sum III (0) | 2024.02.05 |
[leetCode/javascript] 1071. Greatest Common Divisor of Strings (0) | 2024.02.02 |
Big O Notation (๋น ์ค ํ๊ธฐ๋ฒ)
์ปดํจํฐ ๊ณผํ์๋ ์๋ก ๊ฐ์ ์๊ฐ ๋ณต์ก๋๋ฅผ ์ฝ๊ฒ ์ํตํ ๋ชฉ์ ์ผ๋ก ์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ์ ํจ์จ์ฑ์ ๊ฐ๊ฒฐํ๊ณ ์ผ๊ด๋ ์ธ์ด๋ก ์ค๋ช ํ๊ธฐ ์ํด ์ํ์ ๊ฐ๋ ์ ์ฐจ์ฉํ๋ค. ์ด๋ฐ ๊ฐ๋ ์ ํ์ํํ ๊ฒ์ด ๋น ์ค ํ๊ธฐ๋ฒ์ด๋ฉฐ. ์ด๊ฒ์ ์ฌ์ฉํด์ฌ ์ฃผ์ด์ง ์๊ณ ๋ฆฌ์ฆ์ ํจ์จ์ฑ์ ์ฝ๊ฒ ๋ถ๋ฅํ๊ณ ์ดํด์ํฌ ์ ์๋ค. ๊ฐ๋จํ๊ฒ ๋งํ์๋ฉด ์๊ณ ๋ฆฌ์ฆ์ ํจ์จ์ฑ์ ๋ถ์ํ๊ธฐ ์ํด ์ปดํจํฐ ๊ณตํ์๋ค์ด ์ฐ๋ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๋๊ตฌ ์ค ํ๋์ด๋ค.
๋น ์ค๋ ํน์ ๋ฐฉ์์ผ๋ก ์๊ณ ๋ฆฌ์ฆ์ ํ์ํ ๋จ๊ณ ์๋ฅผ ๊ณ ๋ คํจ์ผ๋ก์จ ์ผ๊ด์ฑ์ ์ ์งํ๋ค. ๊ทธ๋ฆฌ๊ณ ๋จ์ํ ์๊ณ ๋ฆฌ์ฆ์ ํ์ํ ๋จ๊ณ ์๋ง ์๋ ค์ฃผ์ง ์๋๋ค. ๋ฐ์ดํฐ๊ฐ ๋์ด๋ ๋ ๋จ๊ณ ์๊ฐ ์ด๋ป๊ฒ ์ฆ๊ฐํ๋์ง ์ค๋ช ํ๋ค.
๋น ์ค ์นดํ ๊ณ ๋ฆฌ
O(N) : ์ ํ์๊ฐ์ ๊ฐ๋ ์๊ณ ๋ฆฌ์ฆ. ๋ฐ์ดํฐ ์ค๊ฐ๊ฐ ์ฑ๋ฅ์ ์ํฅ์ ์ค๋ค. ์ ํํ๋ ๋ฐ์ดํฐ๊ฐ ๋์ด๋ ๋ ์ ํํ ๊ทธ ๋ฐ์ดํฐ์ ๋น๋กํด์ ๋จ๊ณ ์๊ฐ ์ฆ๊ฐํ๋ ์๊ณ ๋ฆฌ์ฆ์ ํ์ด๋ค.
O(1) : ์์ ์๊ฐ์ ๊ฐ๋ ์๊ณ ๋ฆฌ์ฆ. "๊ฐ์ฅ ๋น ๋ฅธ" ์๊ณ ๋ฆฌ์ฆ ์ ํ์ผ๋ก ๋ถ๋ฅ. ๋ฐ์ดํฐ๊ฐ ๋์ด๋๋ ๋จ๊ณ์ ์๊ฐ ์ฆ๊ฐํ์ง ์๋๋ค.
O(logN) : "์ค ๋ก๊ทธ N". ๋ก๊ทธ ์๊ฐ์ ์๊ฐ ๋ณต์ก๋. ๋ฐ์ดํฐ๊ฐ ๋ ๋ฐฐ๋ก ์ฆ๊ฐํ ๋๋ง๋ค ํ ๋จ๊ณ์ ๋์ด๋๋ ์๊ณ ๋ฆฌ์ฆ์ ์ค๋ช ํ๋ ๋น ์ค.
O(nยฒ) : ์ด์ฐจ์๊ฐ ์๊ณ ๋ฆฌ์ฆ. n์ด ์ฆ๊ฐํ ๋๋ง๋ค ๋จ๊ณ ์๊ฐ nยฒ ๋งํผ ๋์ด๋๋ค๊ณ ๋ณด๋ฉด๋๋ค. ๊ฐ์ด n๊ฐ ์ด๋ฏ๋ก nยฒ ๊ฐ ํ์ํ๋ค.
O(n log n) : ๋ฐฐ์ด์ ์์๊ฐ n๊ฐ ์ผ ๋ ์ ๋ ฌ์ ํ์ํ ๋จ๊ณ์๋ n x logN์ด๋ค.
O(2แดบ) : ๊ฐ์ฅ ๋๋ฆฐ ๋น ์ค. O(logN)์ ๋ฐ๋์ด๋ค. ๋ฐ์ดํฐ๊ฐ 1์ฉ ์ปค์ง ๋ ์๊ณ ๋ฆฌ์ฆ์ ํ์ํ ๋จ๊ณ์๋ ๋๋ต 2๋ฐฐ์ฉ ๋์ด๋๋ ๊ฒ.
๋น ์ค ํ๊ธฐ๋ฒ ์์
O(N) : for๋ฌธ
O(1) : Stack (push, pop)
O(logN) : ์ด์ง ๊ฒ์
O(nยฒ) : ์ด์ค๋ฐ๋ชฉ๋ฌธ, ์ฝ์ ์ ๋ ฌ, ๋ฒ๋ธ์ ๋ ฌ,์ ํ์ ๋ ฌ
O(n log n) : ํต ์ ๋ ฌ, ๋ณํฉ์ ๋ ฌ, ํ์ ๋ ฌ
O(2แดบ) : ํผ๋ณด๋์น ์์ด. (์ํธํฌ๋์ปค๋ฌธ์ )
'๊ฐ๋ฐ > ๐ฌ ์ฝ๋ฉํ ์คํธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[leetCode/Javascript] 2363. Merge Similar Items (0) | 2024.02.27 |
---|---|
[leetCode/Javascript] 1572. Matrix Diagonal Sum (0) | 2024.02.13 |
[leetCode/Javascript] 2418. Sort the People (1) | 2024.02.11 |
[LeetCode/Javascript] 216. Combination Sum III (0) | 2024.02.05 |
[leetCode/javascript] 1071. Greatest Common Divisor of Strings (0) | 2024.02.02 |