์๊ณ ๋ฆฌ์ฆ์ ์ฃผ๋ก ์ฌ์ฉํ๋ ์๋ฃ๊ตฌ์กฐ๋ค
1๏ธโฃ ๋ฐฐ์ด
์ฝ์ /์ญ์ : O(N)
ํ์: O(1)
๐ ํ์ด์ฌ์์๋ ๋จ์ํ List๋ก ๊ตฌํํ๋ค.
๐ ํ์ํ ๋ ์ฌ์ฉํ๊ธฐ ์ข์ ์๋ฃ๊ตฌ์กฐ(์ฝ์ ์ด๋ ์ญ์ ๋ ํ์๋ฆฌ์ฉ ๋ค๋ก ์ฎ๊ธฐ๊ฑฐ๋ ํ๋ ์์ผ๋ก ์ด๋ฃจ์ด์ง ์ ์๊ธฐ ๋๋ฌธ์, ์๊ฐ๋ณต์ก๋๊ฐ O(N)์ด๋๋ค.)
2๏ธโฃ ๋ฒกํฐ (= ๋์ ๋ฐฐ์ด)
์ฝ์ /์ญ์ : O(N)
ํ์: O(1)
๐ ํ์ด์ฌ์์๋ ๋จ์ํ List๋ก ๊ตฌํํ๋ค.
C++ ๊ฐ์ ์ธ์ด์์๋ ๋ฐฐ์ด๊ณผ ๋ฒกํฐ๋ ๋ค๋ฅด๋ค.
ํ์ง๋ง ํ์ด์ฌ์์๋ ๋ฐฐ์ด๊ณผ ๊ฐ์ List๋ก ์ฐ๋ฉด ๋๋ค.
List ์์ฒด๊ฐ ์ด๋ฏธ ๋์ ๋ฐฐ์ด์ ์ง์ํด์ฃผ๊ธฐ ๋๋ฌธ์ด๋ค.
3๏ธโฃ ์ฐ๊ฒฐ๋ฆฌ์คํธ
์ฝ์ /์ญ์ : O(1)
ํ์: O(N)
๐ ์๊ฐ๋ณต์ก๋ ์ธก๋ฉด์์ ๋ฐฐ์ด(List)์ ๋ฐ๋ ๋๋ค. (ํ์์ ํ๋ ค๋ฉด ์๊ฐ์ ์ผ๋ก ํฌ์ธํฐ ๋ถ๋ถ์ ์ฐ๊ณ ์ฐ๊ณ ๊ฐ์ผ ํ๊ธฐ ๋๋ฌธ์ ํ์์ด O(N)์ด ๋๊ณ , ์ฐ๊ฒฐ ์์ฒด์ ์๋ค๋ก ์์ ๋ง ํ๋ฉด ๋๋ฏ๋ก ์ฝ์ /์ญ์ ์ ์๊ฐ ๋ณต์ก๋๊ฐ O(1)์ด ๋๋ค.
๐ ๋งํฌ๋ ๋ฆฌ์คํธ๋ ๋ฐฑ์ค ๋ฌธ์ ๋ฅผ ํ๋ฉฐ ๋ง ์ฌ์ฉํ ์ผ์ด ๋ง์ง๋ ์์ง๋ง, ๋ค๋ฅธ ์๋ฃ๊ตฌ์กฐ ๊ตฌํ์๋ ๋ง์ด ์ฐ์ด๋ ์ด๋ก ์ ์์๋ ํ์๊ฐ ์๋ค.
(๋ฉด์ ์ง๋ฌธ์ผ๋ก๋ ๋์ฌ ์ ์๊ฒ ๋ค! ex) "์ฐ๋ฆฌ ํ๋ก๊ทธ๋จ์ ์ฝ์ /์ญ์ ๊ฐ ๋น๋ฒํ๋ฐ ์ด๋ค ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ธํ ๊ฐ??")
4๏ธโฃ ์คํ LIFO
์ฝ์ /์ญ์ : O(1)
๐ Last In First Out
๐ ํ์ด์ฌ์์ ๊ตฌํ์ List๋ก ํ๋ค.
s = [1,2,3,4,5,6]
while(len(s)>0):
print(s[-1])
s.pop(-1)
์์ ์ฝ๋ ์ฒ๋ผ ๊ตฌํ ๋๋ฉด ๋๋๋ฐ, ๋ฐฐ์ด์ ๋ง์ง๋ง ๊ฑฐ๋ฅผ ๊บผ๋ด๋ ๊ฑฐ๋ค.
5๏ธโฃ ํ LILO
์ฝ์ /์ญ์ : O(1)
๐ ์ค์๊ธฐ Last in Last Out
๐ from collections import deque ๋ก ์ํฌํธํ์ฌ ๋ฐํ๋ฅผ ์ฌ์ฉํ๋ค.
from collections import deque
q = deque()
q.append(1)
q.append(2)
q.append(3)
while(len(q) >0):
print(q.popleft())
์ ์ฝ๋์์ ๋ณด๋ฉด popleft() ๋ผ๋ ํจ์๋ฅผ ํตํด ์ฒ์์ ์๋ ๊ฐ์ ๋นผ๋๋ฐ, ๋ฐํ๋ popright()๋ผ๋ ํจ์๋ ์ง์ํ๋ค.
๐ ๋ํ ํ์ด์ฌ์๋ Queue๋ ์๊ณ Deque๋ ์๋๋ฐ Queue๋ ๋ฉํฐ ์ค๋ ๋ฉ๋ ์ง์ํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ฌ์ Deque๋ณด๋ค ๋๋ฆฌ๋ค. ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋ฅผ ํธ๋ ์ ์ฅ์ด๋ฏ๋ก Deque๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด๋ค.
6๏ธโฃ ์ฐ์ ์์ํ(๋ด๋ถ๊ฐ Heap์ผ๋ก ๊ตฌ์ฑ)
์ฝ์ /์ญ์ : O(logN)
import heapq
# ๋ฆฌ์คํธ๋ฅผ ํ๋ ๋ง๋ค๊ณ ์ฌ์ฉํ๋ค.
pq = []
heapq.heappush(pq,3)
heapq.heappush(pq,1)
heapq.heappush(pq,2)
while(len(pq) >0):
print(heapq.heappop(pq))
๐ ํ์ด์ฌ์ MinHeap ์ด๋ค.(์ด์งํธ๋ฆฌ์ ์ต์์๋ ํญ์ ์ต์๊ฐ์ธ)
๐ ์ฐ์ ์์ ํ ๊ฐ์ ๊ฒฝ์ฐ์๋ , ๋ฌธ์ ๋ฅผ ํ๋ฉด์ ์ฌ๋ฌ ๊ฐ๋ค์ ๋ฃ๊ณ ๋บ๋๋ง๋ค ์ ค ์์ ๊ฐ์ด๋ ์ ค ํฐ ๊ฐ์ ์์์ผ ํ ๋ ์จ์ผ ํ๋ค. Sort() ๊ฐ์ ๊ฒฝ์ฐ ์ ์ฒด ๋ฆฌ์คํธ ์์ฒด๋ฅผ ์ ๋ ฌํด์ค๋ค๋ ์ ์์ ํฐ ์ฐจ์ด์ ์ ๊ฐ์ง๋ค.
7๏ธโฃ Map(๋์ ๋๋ฆฌ)
์ฝ์ /์ญ์ : O(1)
๐ ํ์ด์ฌ์ ๋์ ๋๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.
์ถ๊ฐ๋ก, c++๊ฐ์ ๊ฒฝ์ฐ๋ O(logN)์ด ๋๋๋ฐ ์ด๋ c++์ ๋งต์ ์์ ๋ค์ฌ๋ค ๋ณด๋ฉด ์ด์ง ๊ทธ๋ํ๋ก ๊ตฌํ์ด ๋์ด์๊ธฐ ๋๋ฌธ์ด๊ณ , python์ ๋์ ๋๋ฆฌ์ ๊ฒฝ์ฐ๋ ํด์๋ก ๊ตฌํ์ด ๋์ด์๊ธฐ ๋๋ฌธ์ด๋ค.
8๏ธโฃ ์งํฉ(set)
์ฝ์ /์ญ์ : O(logN)
๐์ค๋ณต์ ์ ๊ฑฐํ๋๊ฒ ํฐ ํน์ง!
'CodingTest' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Python]๋ฐฑ์ค 7785::ํ์ฌ์ ์๋ ์ฌ๋ (0) | 2021.05.04 |
---|---|
[Python]๋ฐฑ์ค 1302::๋ฒ ์คํธ ์ ๋ฌ (0) | 2021.05.04 |
[Python]๋ฐฑ์ค 1110๋ฒ::๋ํ๊ธฐ ์ฌ์ดํด (0) | 2021.04.29 |
[Python]๋ฐฑ์ค 3085๋ฒ::์ฌํ ๊ฒ์ (0) | 2021.04.29 |
[Python]๋ฐฑ์ค 4344๋ฒ::ํ๊ท ์ ๋๊ฒ ์ง(round ์ "%.3f") (0) | 2021.04.29 |
๋๊ธ