SOLUTION INFO
C++ · main.cpp
- 작성자
- tony9402
- 공동 작성자
- 없음
#include<bits/stdc++.h>
using namespace std;
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
int N; cin >> N;
deque<int> dq;
for(int i=0;i<N;i++) {
string cmd; cin >> cmd;
if(cmd == "push_front") {
int X; cin >> X;
dq.push_front(X);
}
else if(cmd == "push_back") {
int X; cin >> X;
dq.push_back(X);
}
else if(cmd == "pop_front") {
if(dq.empty()) cout << -1 << '\n';
else {
cout << dq.front() << '\n';
dq.pop_front();
}
}
else if(cmd == "pop_back") {
if(dq.empty()) cout << -1 << '\n';
else {
cout << dq.back() << '\n';
dq.pop_back();
}
}
else if(cmd == "size") {
cout << (int)dq.size() << '\n';
}
else if(cmd == "empty") {
cout << dq.empty() << '\n';
}
else if(cmd == "front") {
if(dq.empty()) cout << -1 << '\n';
else cout << dq.front() << '\n';
}
else if(cmd == "back") {
if(dq.empty()) cout << -1 << '\n';
else cout << dq.back() << '\n';
}
}
return 0;
}
SOLUTION DESCRIPTION
풀이 설명
등록된 풀이 설명이 없습니다.
SOLUTION INFO
Java · Main.java
- 작성자
- semInDev
- 공동 작성자
- 없음
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args)throws IOException{
FastReader input = new FastReader();
StringBuilder sb = new StringBuilder();
int N = input.nextInt();
ArrayDeque<Integer> deque = new ArrayDeque<>();
while(N-->0) {
String cmd = input.next();
switch(cmd) {
case "push_front":
deque.addFirst(input.nextInt());
break;
case "push_back":
deque.addLast(input.nextInt());
break;
case "pop_front":
if(deque.isEmpty()) sb.append(-1+"\n");
else sb.append(deque.pollFirst()+"\n");
break;
case "pop_back":
if(deque.isEmpty()) sb.append(-1+"\n");
else sb.append(deque.pollLast()+"\n");
break;
case "size":
sb.append(deque.size()+"\n");
break;
case "empty":
if(deque.isEmpty()) sb.append(1+"\n");
else sb.append(0+"\n");
break;
case "front":
if(deque.isEmpty()) sb.append(-1+"\n");
else sb.append(deque.peekFirst()+"\n");
break;
case "back":
if(deque.isEmpty()) sb.append(-1+"\n");
else sb.append(deque.peekLast()+"\n");
}
}
System.out.print(sb);
}
static class FastReader {
BufferedReader br;
StringTokenizer st;
public FastReader() throws IOException{
br = new BufferedReader(new InputStreamReader(System.in)); //백준 제출 시 주석해제를 하면 됩니다.
// br = new BufferedReader(new FileReader("input.txt")); //IDE 실행 시 주석해제를 하면 됩니다.
}
String next() {
while(st == null || !st.hasMoreElements()) {
try {
st = new StringTokenizer(br.readLine());
}
catch (IOException e) {
e.printStackTrace();
}
}
return st.nextToken();
}
int nextInt() { return Integer.parseInt(next()); }
long nextLong() { return Long.parseLong(next()); }
String nextLine() {
String str = "";
try {
str = br.readLine();
}
catch (IOException e) {
e.printStackTrace();
}
return str;
}
}
}
SOLUTION DESCRIPTION
풀이 설명
- java 컬렉션 프레임워크의 ArrayDeque을 사용하여 덱을 풀 수 있다.
SOLUTION INFO
Python · main.py
- 작성자
- gusdn3477
- 공동 작성자
- 없음
import sys
from collections import deque
def input():
return sys.stdin.readline().rstrip()
queue = deque()
N = int(input())
for i in range(N):
command = input().split()
if command[0] == 'push_front':
queue.appendleft(command[1])
elif command[0] == 'push_back':
queue.append(command[1])
elif command[0] == 'pop_front':
if queue:
print(queue.popleft())
else:
print(-1)
elif command[0] == 'pop_back':
if queue:
print(queue.pop())
else:
print(-1)
elif command[0] == 'size':
print(len(queue))
elif command[0] == 'empty':
if not queue:
print(1)
else:
print(0)
elif command[0] == 'front':
if queue:
print(queue[0])
else:
print(-1)
elif command[0] == 'back':
if queue:
print(queue[-1])
else:
print(-1)
SOLUTION DESCRIPTION
풀이 설명
등록된 풀이 설명이 없습니다.