๐ ์ถ์ฒ - 10866 - ๋ฑ
๋ฌธ์ ์ค๋ช
์ ์๋ฅผ ์ ์ฅํ๋ ๋ฑ(Deque)๋ฅผ ๊ตฌํํ ๋ค์, ์
๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋ ๋ช
๋ น์ ์ฒ๋ฆฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
๋ช ๋ น์ ์ด ์ฌ๋ ๊ฐ์ง์ด๋ค.
์
๋ ฅ
์ฒซ์งธ ์ค์ ์ฃผ์ด์ง๋ ๋ช
๋ น์ ์ N (1 โค N โค 10,000)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์๋ ๋ช
๋ น์ด ํ๋์ฉ ์ฃผ์ด์ง๋ค. ์ฃผ์ด์ง๋ ์ ์๋ 1๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , 100,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ๋ค. ๋ฌธ์ ์ ๋์์์ง ์์ ๋ช
๋ น์ด ์ฃผ์ด์ง๋ ๊ฒฝ์ฐ๋ ์๋ค.
์ถ๋ ฅ
์ถ๋ ฅํด์ผํ๋ ๋ช
๋ น์ด ์ฃผ์ด์ง ๋๋ง๋ค, ํ ์ค์ ํ๋์ฉ ์ถ๋ ฅํ๋ค.
์ ์ถ๋ ฅ ์
์์ ์ ๋ ฅ | ์์ ์ถ๋ ฅ | |
---|---|---|
15 push_back 1 push_front 2 front back size empty pop_front pop_back pop_front size empty pop_back push_front 3 empty front | 2 1 2 0 2 1 -1 0 1 -1 0 3 | |
22 front back pop_front pop_back push_front 1 front pop_back push_back 2 back pop_front push_front 10 push_front 333 front back pop_back pop_back push_back 20 push_back 1234 front back pop_back pop_back | -1 -1 -1 -1 1 1 2 2 333 10 10 333 20 1234 1234 20 |
๋ฌธ์ ์ ์๋ ๊ทธ๋๋ก ์์ฑํด์ฃผ๋ฉด ํฌ๊ฒ ์ด๋ ต์ง ์๋ค!
๋ค๋ง ์ ๋ ฅ์ ๋ฐ์ ๋,push_back 1
,push_front 2
์ ๊ฐ์ด ์ ๋ ฅ๋ฐ๋ ๊ฒฝ์ฐ๊ฐ ์์ด ๋ชจ๋ ๋จ์ด๋ค์split
์ด์ฉํด ๋ถ๋ฆฌํด ๋ฐ์ ๋ค์ ์ฒ๋ฆฌํด์ฃผ์๋ค.
import sys
input = sys.stdin.readline
def check(word):
if word[0] == 'push_back':
deque.append(int(word[1]))
elif word[0] == 'push_front':
deque.insert(0, int(word[1]))
elif word[0] == 'pop_front':
if len(deque) != 0:
print(deque.pop(0))
else:
print(-1)
elif word[0] == 'pop_back':
if len(deque) != 0:
print(deque.pop())
else:
print(-1)
elif word[0] == 'size':
print(len(deque))
elif word[0] == 'empty':
if len(deque) == 0:
print(1)
else:
print(0)
elif word[0] == 'front':
if len(deque) == 0:
print(-1)
else:
print(deque[0])
elif word[0] == 'back':
if len(deque) == 0:
print(-1)
else:
print(deque[-1])
N = int(input())
deque = []
for i in range(N):
word = input().split()
check(word)
insert(index, item)
๋ ์ธ์๋ก ์ ๋ฌ๋ index
์ ์์ดํ
์ ์ถ๊ฐํฉ๋๋ค. ๋ฐ๋ผ์ ๋ฆฌ์คํธ์ ๋งจ ์์ ์์ดํ
์ ์ถ๊ฐํ๋ ค๋ฉด insert(0, item)
์ผ๋ก ํ ์ ์์ต๋๋ค.
list = [2, 9, 3]
list.insert(0, 'a')
print(list)
>>> ['a', 2, 9, 3]
deque
๋ append()
๋ ์ ๊ณตํ๋ฉฐ ๋ฆฌ์คํธ์ ๋ง์ง๋ง์ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํฉ๋๋ค.
my_list = [2, 9, 3]
deq = deque(my_list)
deq.appendleft('a')
deq.append('b')
print(list(deq))
>>> ['a', 2, 9, 3, 'b']