오늘의 학습 키워드
https://www.acmicpc.net/problem/10828
스택(백준, 실버4)
- 완주하지 못
공부한 내용 본인의 언어로 정리하기
문자답안
package backjoon.silver.lv4;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Stack;
public class B10828 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
Stack<Integer> stack = new Stack<>();
for (int i = 0; i < n; i++) {
String[] commands = br.readLine().split(" ");
if (commands[0].equals("push")) {
stack.push(Integer.valueOf(commands[1]));
} else {
stackPrint(commands[0], stack);
}
}
}
public static void stackPrint(String command, Stack<Integer> stack) {
if (stack.empty()) {
if (command.equals("pop") || command.equals("top")) {
System.out.println(-1);
} else if (command.equals("empty")) {
System.out.println(1);
}
return;
}
switch (command) {
case "pop":
System.out.println(stack.pop());
break;
case "size":
System.out.println(stack.size());
break;
case "empty":
System.out.println(0);
break;
case "top":
System.out.println(stack.peek());
break;
}
}
}
문제 해석
해당 문제는 스택의 기능을 확인해보는 문제였다. 그렇기 때문에 각 기능은 자바의 스텍 자료구조를 사용하면 된다.
데이터가 있을 경우 스택 자료구조의 메서드를 사용하면 되고 데이터가 없을 경우 조건을 만들어 주면 된다.
public static void stackPrint(String command, Stack<Integer> stack) {
// 스텍이 비었을 경우 출력조건을 따로 만들어 준다.
if (stack.empty()) {
if (command.equals("pop") || command.equals("top")) {
System.out.println(-1);
} else if (command.equals("empty")) {
System.out.println(1);
}
return;
}
// 데이터가 있을 경우 스텍의 메서드를 활용하면 된다.
switch (command) {
case "pop":
System.out.println(stack.pop());
break;
case "size":
System.out.println(stack.size());
break;
case "empty":
System.out.println(0);
break;
case "top":
System.out.println(stack.peek());
break;
}
}
오늘의 회고
목요일까지 해시맵 문제를 풀었고 오늘부터는 스택/큐 문제를 풀 예정이다.
'TIL' 카테고리의 다른 글
[TIL-24/11/10] 99클럽 코테 스터디 14일차 TIL 백준 10845번 : 큐 - 자바 (1) | 2024.11.11 |
---|---|
[TIL-24/11/09] 99클럽 코테 스터디 13일차 TIL - 단어순서 뒤집기 -JAVA (1) | 2024.11.10 |
[TIL-24/11/07] 99클럽 코테 스터디 11일차 TIL - 완주하지 못한 선수 -JAVA (3) | 2024.11.07 |
[TIL-24/11/06] 99클럽 코테 스터디 10일차 TIL - 민균이의 비밀번호-JAVA (5) | 2024.11.06 |
[TIL-24/11/05] 99클럽 코테 스터디 9일차 TIL - 민균이의 비밀번호-JAVA (4) | 2024.11.05 |