๋์ ํ์ด
๋ด๋ฆผ์ฐจ์ ์ ๋ ฌํ๊ณ
์ ์ผ ํฐ ๋ฌด๊ฒ(์ธ๋ฑ์ค : 0 ) ์ ์ ์ผ ์์ ๋ฌด๊ฒ(์ธ๋ฑ์ค : -1 ) ๋ฅผ ๋ํ ๊ฐ์ด
๋ฌด๊ฒ์ ํ m ์ ๋๋๋ค๋ฉด
์ ์ผ ํฐ ๋ฌด๊ฒ๋ฅผ ๊ฐ๋ ์ธ์์ ํผ์ ํ์ผํจ ( pop(0) )
๊ฐ์ ํ์ด
๋ง์ฝ ๋ฆฌ์คํธ์ ํ๋ช
๋ง ๋จ์ ์์ ๋
if arr[0]+arr[-1] > limit: # 1๋ช
๋ง ํ๊ณ ๊ฐ ๊ฒฝ์ฐ
arr.pop()
cnt += 1
arr[0] + arr[-1] โ> ๊ฐ์ ๊ฐ์ ๋ํ๊ธฐ ๋๋ฌธ์ ๋
ผ๋ฆฌ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค
else: # 2๋ช
์ด ํ๊ณ ๊ฐ ๊ฒฝ์ฐ
arr.pop(0)
arr.pop()
cnt += 1
๋ฆฌ์คํธ์ ํ๋ ๋จ์์๋ ๊ฐ์ pop(0) ํ๊ณ
๊ทธ ๋ค์ pop() ์ ํ๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์
๋ฆฌ์คํธ์ pop(0) ์ฐ์ฐ์ ๋ค์ ์๋ฃ๋ค์ด ์์ผ๋ก ๋น๊ฒจ์ง๋ ์ฐ์ฐ
โ> ๋งค์ฐ ๋นํจ์จ์ ์ด๋ค
list์ ๊ฒฝ์ฐ pop()์ผ๋ก ๋ง์ง๋ง ๊ฐ์ ๊บผ๋ด๋ ๊ฒฝ์ฐ O(1) (์ผ์ ํ ์๊ฐ) ์๊ฐ์ด ๊ฑธ๋ฆฌ๋๋ฐ,
pop(0)์ผ๋ก ๊ฐ์ฅ ์๋จ์ ๊ฐ์ ๊บผ๋ผ๋๋ list ํฌ๊ธฐ์ ๋ฐ๋ผ ์ฝ์ด ์ค๋ ์๊ฐ์ด ๋ฌ๋ผ์ง๋ค.
O(n) ์๊ฐ์ด ๊ฑธ๋ฆฐ๋ค.
ํ์ง๋ง deque๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ popleft()๋ฅผ ์ฌ์ฉํ๋ฉด
๋ฆฌ์คํธ์ pop(0)๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ ์ฃผ๋ฉด์ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ O(1)์ด ๊ฑธ๋ฆฐ๋ค.
๋ฑ(Deque) ์๋ฃ๊ตฌ์กฐ ์ฌ์ฉ
from collections import deque
arr = deque(arr)
arr.popleft() #pop(0) ๊ณผ ๊ฐ์
arr.pop()
'Algorithm > ํ์ด์ฌ ์ฝ๋ฉํ ์คํธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๊ทธ๋ฆฌ๋์๊ณ ๋ฆฌ์ฆ - 6. ์ญ์์ด (0) | 2023.01.29 |
---|---|
๊ทธ๋ฆฌ๋์๊ณ ๋ฆฌ์ฆ - 5. ์ฆ๊ฐ์์ด ๋ง๋ค๊ธฐ (0) | 2023.01.29 |
๊ทธ๋ฆฌ๋์๊ณ ๋ฆฌ์ฆ - 3. ์ฐฝ๊ณ ์ ๋ฆฌ (0) | 2023.01.28 |
๊ทธ๋ฆฌ๋์๊ณ ๋ฆฌ์ฆ - 2. ์จ๋ฆ ์ ์ (0) | 2023.01.27 |
๊ทธ๋ฆฌ๋์๊ณ ๋ฆฌ์ฆ - 1. ํ์์ค ๋ฐฐ์ (0) | 2023.01.27 |