코딩테스트/백준
[Java] 백준 - 10828번 : 스택 (Silver IV)
배똥회장
2022. 8. 22. 11:26
728x90
코딩 테스트 풀이 체크리스트 |
|
2시간 내에 풀었는가? | O |
본인의 실력으로 풀었는가? | O |
10828번: 스택
첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지
www.acmicpc.net
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
//명령 수
int t = Integer.parseInt(br.readLine());
//스택을 구현할 ArrayList
ArrayList<String> stack = new ArrayList<>();
//명령 수 만큼 반복
for (int i = 0; i < t; i++) {
//push를 위해 String배열로 입력값 가져오기
String[] code = br.readLine().split(" ");
//이외에는 문제의 설명대로 push, pop, top, size, empty의 경우에 맞게 출력값 작성하기
if (code[0].equals("push")) {
stack.add(code[1]);
} else {
if (code[0].equals("pop")) {
bw.write((stack.size() == 0 ? "-1" : stack.get(stack.size()-1)));
if (stack.size() > 0) stack.remove(stack.size()-1);
} else if (code[0].equals("size")) {
bw.write(Integer.toString(stack.size()));
} else if (code[0].equals("empty")) {
bw.write(stack.size() == 0 ? "1" : "0");
} else {
bw.write((stack.size() == 0 ? "-1" : stack.get(stack.size()-1)));
}
bw.write("\n");
}
}
bw.flush();
bw.close();
}
}
문제 | 결과 | 메모리 | 시간 | 코드 길이 |
10828 | 맞았습니다!! | 19592 KB | 184 ms | 1006 B |
728x90