[백준 10828번 / Java] 스택코딩테스트/백준2023. 7. 1. 07:27
Table of Contents
728x90
728x90
문제 링크
https://www.acmicpc.net/problem/10828
풀이
단순 스택을 구현하는 문제로, List배열을 사용했음
아래 사진은 StringBuffer와 System.out.print의 시간 차이 (중간에는 stringbuffer을 sysout해주지 않음....)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer;
public class BaekJoon10828 {
static List<Integer> stack = new ArrayList<>();
static StringBuffer sb = new StringBuffer();
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
int N = Integer.parseInt(br.readLine());
for(int i = 0; i < N; i++){
st = new StringTokenizer(br.readLine(), " ");
switch(st.nextToken()){
case "push": push(Integer.parseInt(st.nextToken()));
break;
case "pop" : pop();
break;
case "size" : size();
break;
case "empty" : empty();
break;
case "top" : top();
break;
}
}
System.out.println(sb.toString());
}
private static void push(int i) {
stack.add(i);
}
private static void pop() {
if(stack.isEmpty()) sb.append(-1 + "\n");
else{
sb.append(stack.remove(stack.size() - 1) + "\n");
}
}
private static void size() {
sb.append(stack.size() + "\n");
}
private static void empty() {
if(stack.isEmpty()) sb.append(1 + "\n");
else sb.append(0 + "\n");
}
private static void top() {
if(stack.isEmpty()) sb.append(-1 + "\n");
else sb.append(stack.get(stack.size() - 1) + "\n");
}
}
728x90
300x250
@mag1c :: 꾸준히 재밌게
2023.04 ~ 백엔드 개발자의 기록
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!