본문 바로가기
알고리즘

(백준) 10828번 : 스택 - 자바[JAVA]

by 코딩개발 2021. 9. 15.
728x90
반응형

 

입력후 한번에 출력

package test;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Test_10828 {
	static int[] stack;
	static int size = 0;

	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();
		StringTokenizer st;
		
		int N = Integer.parseInt(br.readLine());
		stack = new int[N];
		
		for(int i = 0; i < N; i++) {
			st = new StringTokenizer(br.readLine(), " ");
			
			switch(st.nextToken()) {
			case "push":
				push(Integer.parseInt(st.nextToken()));
				break;

			case "top":
				sb.append(top()).append('\n');
				break;

			case "size":
				sb.append(size()).append('\n');
				break;

			case "empty":
				sb.append(empty()).append('\n');
				break;

			case "pop":
				sb.append(pop()).append('\n');
				break;
			}
		}
		System.out.println(sb);
	}
	
	static void push(int n) {
		stack[size++] = n; // 값을 넣고 size + 1
	}

	static int top() {
		if(size == 0) { // stack이 비었을 때
			return -1;
		} else {
			return stack[size - 1]; // 값은 size - 1 에 있으므로
		}
	}

	static int size() {
		return size;
	}

	static int empty() {
		if(size == 0) { // stack이 비었을 때
			return 1;
		} else {
			return 0;
		}
	}

	static int pop() {
		if(size == 0) { // stack이 비었을 때
			return -1;
		}
		return stack[--size];
	}
}

 

입력 후 바로 출력되는 코드

package test;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Test_10828 {
	static int[] stack;
	static int size = 0;

	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();
		StringTokenizer st;
		
		int N = Integer.parseInt(br.readLine());
		stack = new int[N];
		
		for(int i = 0; i < N; i++) {
			st = new StringTokenizer(br.readLine(), " ");
			
			switch(st.nextToken()) {
			case "push":
				push(Integer.parseInt(st.nextToken()));
				break;

			case "top":
				System.out.println(top());
				break;

			case "size":
				System.out.println(size());
				break;

			case "empty":
				System.out.println(empty());
				break;

			case "pop":
				System.out.println(pop());
				break;
			}
		}
	}
	
	static void push(int n) {
		stack[size++] = n; // 값을 넣고 size + 1
	}

	static int top() {
		if(size == 0) { // stack이 비었을 때
			return -1;
		} else {
			return stack[size - 1]; // 값은 size - 1 에 있으므로
		}
	}

	static int size() {
		return size;
	}

	static int empty() {
		if(size == 0) { // stack이 비었을 때
			return 1;
		} else {
			return 0;
		}
	}

	static int pop() {
		if(size == 0) { // stack이 비었을 때
			return -1;
		}
		return stack[--size];
	}
}

 

728x90
반응형

댓글