[99클럽 코테 스터디 12일차 TIL] 백준 10828 스택

말하는 감자·2024년 11월 8일
0
post-thumbnail

99클럽 코테 스터디 12일차 TIL

💙 JAVA 비기너

📌 오늘의 학습 키워드

  • 스택

📌 공부한 내용

📍 오늘의 문제

📍 작성 코드

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.EmptyStackException;
import java.util.Stack;

public class Main {

	public static void main(String[] args) throws IOException {
		
		Stack<String> stack = new Stack<>();
		
	    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
	    
	    int N = Integer.parseInt(br.readLine());
	    
	    BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
	    
	    for (int i=0; i<N; i++) {
	    	String[] command = br.readLine().split(" ");
	    	
    		switch(command[0]) {
    		case "push" :
    			stack.push(command[1]);
    			break;
    		case "pop" :
    			bw.write(stack.empty() ? "-1" : stack.pop());
    			bw.write("\n");
    			break;
    		case "size" :
    			bw.write(String.valueOf(stack.size()));
    			bw.write("\n");
    			break;
    		case "empty" : 
    			bw.write(stack.empty() ? "1" : "0");
    			bw.write("\n");
    			break;
    		case "top" :
    			bw.write(stack.empty() ? "-1" : stack.peek());
    			bw.write("\n");
                break;
    		}
    		
	    }
	    
	    br.close();

	    bw.flush();
	    bw.close();
		
	}
}

📌 오늘의 회고

대학교 때 자료구조 수업 이후로 사용 안한 듯한 스택을 사용했다.
옛날 기억이 새록새록...!!!

명령어에 따라 다른 기능들을 실행시키면 되는데 Stack에서 기본적으로 지원하는 함수들로 충분히 해결할 수 있는 명령어들이었다.

Stack 기본 함수

  • Stack.push(item) : 아이템을 스택에 추가하고, 해당 값을 반환
  • Stack.pop() : 스택의 마지막 요소를 반환하고 해당 요소를 스택에서 제거
  • Stack.peek() : 스택의 마지막 요소를 반환
  • Stack.size() : 스택의 크기를 반환
  • Stack.empty() : 스택이 비어있으면 true를, 요소가 있다면 false를 반환
profile
나는 말하는 감자다

0개의 댓글