백준(Backjoon) 10866, 덱
2021. 6. 25. 16:58ㆍCodingTest
문제풀이
Deque 클래스를 선언하고 필드 멤버로 List<Integer> 리스트를 선언한다.
소스코드
public class Main {
static class Deque
{
private List<Integer> deque;
Deque()
{
deque = new ArrayList<Integer>();
}
void push_front(int x)
{
deque.add(0, x);
}
void push_back(int x)
{
deque.add(x);
}
int pop_front()
{
if(empty()==1)
{
return -1;
}
return deque.remove(0);
}
int pop_back()
{
if(empty()==1)
{
return -1;
}
return deque.remove(size()-1);
}
int size()
{
return deque.size();
}
int empty()
{
return (size()!=0 ? 0 : 1);
}
int front()
{
if(empty()==1)
{
return -1;
}
return deque.get(0);
}
int back()
{
if(empty()==1)
{
return -1;
}
return deque.get(size()-1);
}
}
public static void main(String args[]) throws IOException
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
Deque d = new Deque();
for(int i=0;i<n;i++)
{
String[] cmd = br.readLine().split(" ");
switch(cmd[0])
{
case "push_front":
d.push_front(Integer.parseInt(cmd[1]));
break;
case "push_back":
d.push_back(Integer.parseInt(cmd[1]));
break;
case "pop_front":
System.out.println(d.pop_front());
break;
case "pop_back":
System.out.println(d.pop_back());
break;
case "size":
System.out.println(d.size());
break;
case "empty":
System.out.println(d.empty());
break;
case "front":
System.out.println(d.front());
break;
case "back":
System.out.println(d.back());
break;
}
}
}
}
'CodingTest' 카테고리의 다른 글
백준(Backjoon) 10816, 숫자 카드 2 (0) | 2021.06.28 |
---|---|
백준(Backjoon) 2164, 카드2 (0) | 2021.06.25 |
백준(Backjoon) 1966, 프린터 큐 (0) | 2021.06.25 |
백준(Backjoon) 1212, 8진수 2진수 (0) | 2021.06.24 |
백준(Backjoon) 10988, 팰린드롬인지 확인하기 (0) | 2021.06.23 |