Algorithm/ํŒŒ์ด์ฌ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ

๊ทธ๋ฆฌ๋””์•Œ๊ณ ๋ฆฌ์ฆ˜ - 4. ์นจ๋ชฐํ•˜๋Š” ํƒ€์ดํƒ€๋‹‰

hello_u 2023. 1. 28. 18:04



๋‚˜์˜ ํ’€์ด



๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌํ•˜๊ณ 

์ œ์ผ ํฐ ๋ฌด๊ฒŒ(์ธ๋ฑ์Šค : 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) ์—ฐ์‚ฐ

๋ฆฌ์ŠคํŠธ์˜ pop(0) ์—ฐ์‚ฐ์‹œ ๋’ค์˜ ์ž๋ฃŒ๋“ค์ด ์•ž์œผ๋กœ ๋‹น๊ฒจ์ง€๋Š” ์—ฐ์‚ฐ
โ€”> ๋งค์šฐ ๋น„ํšจ์œจ์ ์ด๋‹ค

list์˜ ๊ฒฝ์šฐ pop()์œผ๋กœ ๋งˆ์ง€๋ง‰ ๊ฐ’์„ ๊บผ๋‚ด๋Š” ๊ฒฝ์šฐ O(1) (์ผ์ •ํ•œ ์‹œ๊ฐ„) ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฌ๋Š”๋ฐ,
pop(0)์œผ๋กœ ๊ฐ€์žฅ ์•ž๋‹จ์— ๊ฐ’์„ ๊บผ๋‚ผ๋•Œ๋Š” list ํฌ๊ธฐ์— ๋”ฐ๋ผ ์ฝ์–ด ์˜ค๋Š” ์‹œ๊ฐ„์ด ๋‹ฌ๋ผ์ง„๋‹ค.
O(n) ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฐ๋‹ค.



๋ฑ(Deque) , ์–‘๋ฐฉํ–ฅ ์‚ญ์ œ/์‚ฝ์ž… ๊ฐ€๋Šฅ

ํ•˜์ง€๋งŒ deque๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ popleft()๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด
๋ฆฌ์ŠคํŠธ์˜ pop(0)๊ณผ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ์ฃผ๋ฉด์„œ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์€ O(1)์ด ๊ฑธ๋ฆฐ๋‹ค.



๋ฑ(Deque) ์ž๋ฃŒ๊ตฌ์กฐ ์‚ฌ์šฉ


from collections import deque

arr = deque(arr)

arr.popleft()  #pop(0) ๊ณผ ๊ฐ™์Œ 
arr.pop()