๋กœ์ผ“๐Ÿพ
article thumbnail
๋ฐ˜์‘ํ˜•

 

ํŒŒ์ด์ฌ์˜ collections ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์œ ์šฉํ•œ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์ œ๊ณตํ•˜๋Š” ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ž…๋‹ˆ๋‹ค. ๊ทธ ์ค‘ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” deque์™€ Counter์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

ํŒŒ์ด์ฌ์—์„œ ํ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š”๋ฐ ์žˆ์–ด Queue๋ผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์žˆ์ง€๋งŒ ์ผ๋ฐ˜์ ์ธ ํ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์•„๋‹™๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ deque๋ฅผ ์ด์šฉํ•˜์—ฌ ํ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ๊ตฌํ˜„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

์ผ๋ฐ˜์ ์œผ๋กœ ๋ฆฌ์ŠคํŠธ ๊ฐ€์žฅ์•ž์— ์›์†Œ๋ฅผ ์‚ฝ์ž…ํ• ๋•Œ ์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” O(N)์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ deque์˜ appendleft()๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ O(1)๋กœ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

  ๋ฆฌ์ŠคํŠธ deque
๊ฐ€์žฅ ์•ž์ชฝ์— ์›์†Œ ์ถ”๊ฐ€(appendleft(x)) O(N) O(1)
๊ฐ€์žฅ ๋’ค์ชฝ์— ์›์†Œ ์ถ”๊ฐ€(append(x)) O(1) O(1)
๊ฐ€์žฅ ์•ž์ชฝ์— ์žˆ๋Š” ์›์†Œ ์ œ๊ฑฐ(leftpop()) O(N) O(1)
๊ฐ€์žฅ ๋’ค์ชฝ์— ์žˆ๋Š” ์›์†Œ ์ œ๊ฑฐ(pop()) O(1) O(1)

 

deque๋กœ ์„ ์–ธํ•œ ๋ฆฌ์ŠคํŠธ์—์„œ๋Š” ์ผ๋ฐ˜์ ์ธ ๋ฆฌ์ŠคํŠธ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ธ๋ฑ์‹ฑ, ์Šฌ๋ผ์ด์‹ฑ ๊ธฐ๋Šฅ์€ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋‹ค๋งŒ, ๋ฆฌ์ŠคํŠธ์˜ ์‹œ์ž‘ ํ˜น์€ ๋ ๋ถ€๋ถ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…ํ•˜์—ฌ ์‚ญ์ œํ•  ๋•Œ๋Š” ์ƒ๋‹นํžˆ ํšจ์œจ์ ์ž…๋‹ˆ๋‹ค.

 

from collections import deque

data = deque([2, 3, 4])
data.append(5)
data.appendleft(1)

print(data)
print(list(data))

data.pop()
data.popleft()

print(data)
print(list(data))

 

collections ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ Counter๋Š” ๋“ฑ์žฅ ํšŸ์ˆ˜๋ฅผ ์„ธ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์›์†Œ๋ณ„ ๋“ฑ์žฅ ํšŸ์ˆ˜๋ฅผ ์„ธ๋Š” ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•  ๋•Œ ์งง์€ ์†Œ์Šค์ฝ”๋“œ๋กœ ์ด๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

from collections import Counter

counter = Counter(['red', 'blue', 'red', 'blue', 'green', 'red'])

print(counter['blue'])
print(counter['red'])
print(dict(counter))
๋ฐ˜์‘ํ˜•
profile on loading

Loading...