본문 바로가기
백준

[자바 :: 백준 10828 스택 ]

by javaman 2022. 8. 6.

문제 풀이 시나리오 ::

1. 스택 자료구조 메서드 구현

2. n줄 입력받고

3. 출력값이 있는 경우 StringBuilder이용

 

//스택에 데이터 따로 저장
		for (int i = 0 ; i<n ;i++) {
			String command = scan.next();
			//스위치 문
			switch(command) {
			case"push":
				stack.push(scan.nextInt());
				break;
			case"pop":
				sb.append(stack.pop()).append('\n');
				break;
			case"top":
				sb.append(stack.top()).append('\n');
				break;
			case"size":
				sb.append(stack.size()).append('\n');
				break;
			case"empty":
				sb.append(stack.empty()).append('\n');
				
				break;
			}

package baekjoon;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;


class Stack{
	static List<Integer> _stack = new ArrayList<Integer>();
	public void push(int n) {
		_stack.add(n);
	}
	public int size() {
		return _stack.size();
	}
	public int top() {
		int last = _stack.size() -1;
		if(last == -1) {
			return -1;
		}
			
		
		return _stack.get(last);
		
		
	}
	public int pop() {
		int last = _stack.size() -1;
		if(last == -1) {
			return -1;
			
		}
			
		return _stack.remove(last);
		
	}
	
	public int empty() {
		return _stack.size()==0? 1 : 0;
	}
}
public class Main {
	
	public static void main(String[] args) {
		Stack stack = new Stack();
		Scanner scan= new Scanner(System.in);
		int n = scan.nextInt();
		StringBuilder sb = new StringBuilder();
		//스택에 데이터 따로 저장
		for (int i = 0 ; i<n ;i++) {
			String command = scan.next();
			//스위치 문
			switch(command) {
			case"push":
				stack.push(scan.nextInt());
				break;
			case"pop":
				sb.append(stack.pop()).append('\n');
				break;
			case"top":
				sb.append(stack.top()).append('\n');
				break;
			case"size":
				sb.append(stack.size()).append('\n');
				break;
			case"empty":
				sb.append(stack.empty()).append('\n');
				
				break;
			}
			
			
		}
		System.out.println(sb);
		
	}
	
	
}