ํฐ์คํ ๋ฆฌ ๋ทฐ
728x90
๐ฉ ํ(queue)
thinking
ํฌ์ธํธ๋ deque ๋ชจ๋ ์ ์ฌ์ฉํ๋ ๊ฒ์ด๋ค!!!!!
๊ทธ๋ฅ pop(0)์ผ๋ก ํ๋ฉด ์๊ฐ์ด๊ณผ ๋จ
deque ์ฌ์ฉํ๋ ์ด์ : popleft์ ์๊ฐ์ฐจ์ด ๋๋ฌธ์
list์ ๊ฒฝ์ฐ pop()
์ผ๋ก ๋ง์ง๋ง ๊ฐ์ ๊บผ๋ด๋ ๊ฒฝ์ฐ O(1) (์ผ์ ํ ์๊ฐ) ์๊ฐ์ด ๊ฑธ๋ฆฌ๋๋ฐ, pop(0)
์ผ๋ก ๊ฐ์ฅ ์๋จ์ ๊ฐ์ ๊บผ๋ผ๋๋ list ํฌ๊ธฐ์ ๋ฐ๋ผ ์ฝ์ด ์ค๋ ์๊ฐ์ด ๋ฌ๋ผ์ ธ O(n) ์๊ฐ์ด ๊ฑธ๋ฆผ.
ํ์ง๋ง deque
๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ์, popleft()
๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฆฌ์คํธ์ pop(0)
๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ ์ฃผ๋ฉด์ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ O(1)์ด ๊ฑธ๋ฆฐ๋ค.
์ฝ๋ (pass)
from collections import deque
N = int(input())
queue = deque()
for i in range(1, N+1):
queue.append(i)
while len(queue) > 1:
queue.popleft()
queue.append(queue.popleft())
print(queue.pop())
์๊ฐ์ด๊ณผ ๋ ์ฝ๋ (fail)
N = int(input())
queue = [i for i in range(1, N+1)] # 1~N ๊น์ง ์นด๋ ๋ฆฌ์คํธ ๋ง๋ค๊ธฐ
while True: # ์ผ๋จ ๊ณ์ ๋๋ฆฌ๋ค๊ฐ
if len(queue) == 1: # ์นด๋ ํ์ฅ ๋จ์ผ๋ฉด ๋ฐ๋ณต๋ฌธ ์ข
๋ฃ
break
queue.pop(0) # ๋งจ ์ ์นด๋ ํ๋ฒ ๋นผ์ฃผ๊ณ
queue.append(queue.pop(0)) # ๋๋ฒ์งธ ์นด๋ (๊ทธ ๋ค์ ๋งจ ์ ์นด๋) ๋นผ์ ๋ฆฌ์คํธ ๋งจ ๋ค์ ๋ฃ๊ธฐ
print(*queue)
ํ์คํ๊ธฐ
ํ๋ deque๋ ์ฌํ ๊ฐ์ ๊ฑด์ค ๐
'algorithm > baekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 1074. Z / python ํ์ด์ฌ (0) | 2021.04.08 |
---|---|
[๋ฐฑ์ค] 2630. ์์ข ์ด ๋ง๋ค๊ธฐ / python ํ์ด์ฌ (0) | 2021.04.08 |
[๋ฐฑ์ค] 15649. N๊ณผ M (1) / python ํ์ด์ฌ (0) | 2021.04.08 |
[๋ฐฑ์ค] 1018. ์ฒด์คํ ๋ค์ ์น ํ๊ธฐ / python ํ์ด์ฌ (0) | 2021.04.08 |
[๋ฐฑ์ค] 2798. ๋ธ๋์ญ / python ํ์ด์ฌ (0) | 2021.04.08 |
๋๊ธ
๊ธ ๋ณด๊ดํจ
TAG
- merge ์๋ฌ
- ์ผ์ฑ์ฝํ
- ํ์ด์ฌ
- 20056 ๋ง๋ฒ์ฌ ์์ด์ ํ์ด์ด๋ณผ
- git ๋ฏธ๋ฌ๋ง
- swea
- 21609 ์์ด ์คํ๊ต
- ์๊ณ ๋ฆฌ์ฆ
- ํ๋ก๊ทธ๋๋จธ์ค
- 20057 ๋ง๋ฒ์ฌ ์์ด์ ํ ๋ค์ด๋
- 17406 ๋ฐฐ์ด๋๋ฆฌ๊ธฐ4
- 2579 ๊ณ๋จ์ค๋ฅด๊ธฐ
- BFS
- ์ผ์ฑ๊ธฐ์ถ
- ๋ณด์์ผํ
- react
- ๋ฐฑ์ค
- 2018 ์นด์นด์ค ๊ณต์ฑ
- ๋ธ๋ฃจํธํฌ์ค
- dfs
- ๊ธฐ์ง๊ตญ์ค์น
- dp
- ์์ด๋๋ง์๊ธฐ
- Python
- merge์๋ฌ
์ต๊ทผ์ ์ฌ๋ผ์จ ๊ธ
- Total
- Today
- Yesterday
์ต๊ทผ์ ๋ฌ๋ฆฐ ๋๊ธ