백준 10866번
import java.util.Deque;
import java.util.LinkedList;
import java.util.Scanner;
public class problem462 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int size = in.nextInt();
// Queue의 단방향을 극복하기위한 Deque
Deque<Integer> deque = new LinkedList<>();
StringBuilder output = new StringBuilder();
for (int i = 0; i < size; i++) {
String compare = in.next();
switch (compare) {
case "push_front":
// deque의 맨 앞의 값 추가
deque.addFirst(in.nextInt());
break;
case "push_back":
// deque의 맨 뒤의 값 추가
deque.addLast(in.nextInt());
break;
case "pop_front":
if (deque.isEmpty()) {
output.append("-1\n");
} else {
output.append(deque.removeFirst()).append("\n");
}
break;
case "pop_back":
if (deque.isEmpty()) {
output.append("-1\n");
} else {
output.append(deque.removeLast()).append("\n");
}
break;
case "size":
output.append(deque.size()).append("\n");
break;
case "empty":
if (deque.isEmpty()) {
output.append("1\n");
} else {
output.append("0\n");
}
break;
case "front":
if (deque.isEmpty()) {
output.append("-1\n");
} else {
output.append(deque.peekFirst()).append("\n");
}
break;
case "back":
if (deque.isEmpty()) {
output.append("-1\n");
} else {
output.append(deque.peekLast()).append("\n");
}
break;
}
}
System.out.println(output.toString());
}
}
백준 10799번
import java.util.Scanner;
import java.util.Stack;
public class problem463 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int result = 0;
String input = in.next();
Stack<Character> stack = new Stack<>();
for (int i = 0; i < input.length(); i++) {
char ch = input.charAt(i);
if (ch == '(') {
stack.push(ch);
} else {
stack.pop();
if (input.charAt(i - 1) == '(') {
result += stack.size();
}
// ')'가 연속으로 나올 경우
else {
result++;
}
}
}
System.out.println(result);
}
}
백준 10430번
import java.util.Scanner;
public class problem464 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int a = in.nextInt();
int b = in.nextInt();
int c = in.nextInt();
System.out.println((a + b) % c);
System.out.println(((a % c) + (b % c)) % c);
System.out.println((a * b) % c);
System.out.println(((a % c) * (b % c)) % c);
}
}