의도된 시간복잡도
🔒시간 제한
1.000 S메모리 제한
128 MB제출 수
4정답 수
3정답률
75.000%
문제 설명
아래의 쿼리를 처리하는 덱을 구현해 보자.
사용 언어의 라이브러리 상에 덱이 존재한다면 비교적 쉽게 해결할 수 있을 테지만, 한 번쯤 직접 구현해 보는 것도 좋은 경험이 된다.
- $push$_$front$ $x$ : 정수 $x$를 덱에 앞에 삽입한다. $(1 ≤ x ≤ 1,000)$
- $push$_$back$ $x$ : 정수 $x$를 덱에 뒤에 삽입한다. $(1 ≤ x ≤ 1,000)$
- $front$ : 덱에서 가장 앞에 있는 정수를 출력한다. 만약 덱이 비어 있다면, $-1$을 출력한다.
- $back$ : 덱에서 가장 뒤에 있는 정수를 출력한다. 만약 덱이 비어 있다면, $-1$을 출력한다.
- $pop$_$front$ : 덱에서 가장 앞에 있는 정수를 제거한다. 만약 덱이 비어 있다면, 아무것도 수행하지 않는다.
- $pop$_$back$ : 덱에서 가장 뒤에 있는 정수를 제거한다. 만약 덱이 비어 있다면, 아무것도 수행하지 않는다.
- $size$ : 덱에 들어있는 정수의 개수를 출력한다.
- $empty$ : 덱이 비어 있다면 $1$을, 비어 있지 않다면 $0$을 출력한다.
입력 설명
첫째 줄에 쿼리의 개수 $Q$가 주어진다. $(1 ≤ Q ≤ 50,000)$
둘째 줄부터 $Q$개의 줄에 걸쳐 임의의 쿼리가 주어진다.
둘째 줄부터 $Q$개의 줄에 걸쳐 임의의 쿼리가 주어진다.
출력 설명
출력을 요구하는 쿼리가 주어질 때마다, 그에 맞는 답을 차례대로 출력한다.
예시 1
입력
12
push_front 1
push_back 2
size
push_back 3
front
pop_front
push_front 4
back
pop_back
pop_back
pop_front
empty
출력
2
1
3
1
기여
만든 사람 : pill27211