728x90
반응형
바로 전에 스택을 공부한 뒤, 그 내용을 바탕으로 스택 문제 1번인 10828번 : 스택 문제를 풀었다.
스택에 대해 아직 이해하지 못했다면 다음의 블로그에서 확인하면 된다.
https://lucy1215.tistory.com/17
<문제>
<문제 해석>
스택을 이용하여
- push (number) -> stack에 number를 push
- pop -> stack의 맨 위 수를 pop / 없을 경우 -1
- size -> stack의 size 출력
- empty -> stack이 비어있는지 여부 (비어있으면 1, 아니면 0)
- top -> stack의 맨 위 수를 출력 / 없을경우 -1
에 맞게 출력하라.
<문제 해결>
스택을 공부한 뒤, 푸는 문제라 어려움은 없었다.
입력받은 명령 (push, pop, size, empty, top) 에 맞게
if-else 조건문을 작성하여
실행하면 된다.
<코드>
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;
import java.util.Stack;
public class Main {
static int n;
static Stack<Integer> stack = new Stack<>();
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
n = Integer.parseInt(br.readLine());
for(int i=0;i<n;i++) {
String str = br.readLine();
run(str);
}
}
static void run(String str) {
if(str.equals("top")) {
if(stack.size() == 0) {
System.out.println("-1");
}else {
System.out.println(stack.peek());
}
}
else if(str.equals("size")) {
System.out.println(stack.size());
}
else if(str.equals("empty")) {
if(stack.empty() == true) {
System.out.println("1");
}else {
System.out.println("0");
}
}
else if(str.equals("pop")) {
if(stack.size() == 0) {
System.out.println("-1");
}else {
System.out.println(stack.peek());
stack.pop();
}
}
else if(str.contains("push")) {
String spt[] = str.split(" ");
stack.push(Integer.parseInt(spt[1]));
}
}
}
https://www.acmicpc.net/problem/10828
반응형
'백준' 카테고리의 다른 글
[백준] 9012번 : 괄호 (JAVA) (0) | 2023.01.09 |
---|---|
[백준] 10773번 : 제로 (JAVA) (2) | 2023.01.09 |
[백준] 1931번 : 회의실 배정 (JAVA) (2) | 2023.01.06 |
[백준] 11047번 : 동전 0 (JAVA) (0) | 2023.01.06 |
[백준] 14889번 : 스타트와 링크 (JAVA) (0) | 2023.01.05 |