코딩테스트/백준

[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