위 블로그에서 입력속도 비교글을 한눈에 볼 수 있다.
BufferReader로 입력을받고 "push 정수" 를 스페이스바로 구분하기위해 StringTokenizer를 사용하였다
출력은 StringBuilder에 출력값을 더하고 줄바꿈을 하여 마지막에 출력하였다
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
//스택
//https://www.acmicpc.net/problem/10828
public class B10828 {
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
StringBuilder sb = new StringBuilder();
int N = Integer.parseInt(bf.readLine());
Stack<Integer> stack = new Stack<>();
for(int i=0; i<N; i++){
st = new StringTokenizer(bf.readLine(), " ");
String str = st.nextToken();
if(Objects.equals(str, "push")){
stack.push(Integer.parseInt(st.nextToken()));
}else if(Objects.equals(str, "pop")){
if(stack.size()<1) sb.append(-1).append('\n');
else {
sb.append(stack.pop()).append('\n');
}
}else if(Objects.equals(str, "size")){
sb.append(stack.size()).append('\n');
}else if(Objects.equals(str, "empty")){
if(stack.empty()) sb.append(1).append('\n');
else sb.append(0).append('\n');
}else if(Objects.equals(str, "top")){
if(stack.size()<1) sb.append(-1).append('\n');
else sb.append(stack.peek()).append('\n');
}
}
System.out.println(sb);
}
}
'연습문제 > JAVA' 카테고리의 다른 글
[백준 java] 1068 - 트리 (0) | 2022.08.27 |
---|---|
[백준 java] 10845 - 큐 (0) | 2022.08.26 |
[백준 java] 9935 - 문자열 폭발 (0) | 2022.08.25 |
[백준 java] 1717 - 집합의 표현 (Union-find) (0) | 2022.08.25 |
1717-집합의 표현 (오답) (0) | 2022.08.24 |