Notice
Recent Posts
Recent Comments
Link
Dev.baelanche
[백준 10845] 큐 본문
반응형
자료구조 중 선입선출의 특징을 가진 큐 문제다.
큐를 문제에 맞게 직접 구현하여 풀었다.
public class Main {
Node head;
Node tail;
int size = 0;
class Node {
Node prev;
Object value;
Node(Object value) {
this.value = value;
}
}
public void push(Object value) {
Node node = new Node(value);
if(size == 0) {
head = node;
tail = node;
}
tail.prev = node;
tail = node;
size++;
}
public Object pop() {
if(size == 0) return -1;
Node temp = head;
head = head.prev;
size--;
return temp.value;
}
public Object front() {
if(size == 0) return -1;
return head.value;
}
public Object back() {
if(size == 0) return -1;
return tail.value;
}
public int size() {
return size;
}
public boolean isEmpty() {
if(size == 0) return true;
return false;
}
public void clear() {
head = null;
size = 0;
}
public String toString() {
String str = "front [";
Node temp = head;
for(int i=0; i<size; i++) {
str += temp.value;
if(i != size -1)
str += ", ";
temp = temp.prev;
}
return str + "] rear";
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
sc.nextLine();
Main q = new Main();
while(n-->0) {
String str = sc.nextLine();
if(str.contains("push")) {
int push = Integer.parseInt(str.split(" ")[1]);
q.push(push);
} else if(str.contains("pop")) {
System.out.println(q.pop());
} else if(str.contains("size")) {
System.out.println(q.size());
} else if(str.contains("empty")) {
if(q.isEmpty()) System.out.println(1);
else System.out.println(0);
} else if(str.contains("front")) {
System.out.println(q.front());
} else if(str.contains("back")) {
System.out.println(q.back());
}
}
sc.close();
}
}
반응형
'Data Structure & Algorithm > PS - JAVA' 카테고리의 다른 글
[백준 1966] 프린터 큐 (0) | 2019.04.06 |
---|---|
[백준 2164] 카드2 (0) | 2019.04.06 |
[백준 9507] Generations of Tribbles (0) | 2019.04.06 |
[백준 2631] 줄세우기 (0) | 2019.04.06 |
[백준 11055] 가장 큰 증가 부분 수열 (0) | 2019.04.06 |
Comments