본문 바로가기

Python

BAEKJOON(백준) Stack - 10828번 PYTHON / JAVA CODE

 

 

python

import sys

n = int(sys.stdin.readline())

stack = [] #스택
res = [] #결과 담을 list


#empty 확인 함수
def empty(lst):
    if len(lst) == 0:
        return True


for i in range(n):
    command = sys.stdin.readline().split()

#push일 때
    if command[0] == 'push':
        stack.append(command[1])

#pop일 때
    elif command[0] == 'pop':
        if empty(stack):
            res.append(-1)
        else:
            res.append(stack.pop())

#size일 때
    elif command[0] == 'size':
        res.append(len(stack))

#empty일 때
    elif command[0] == 'empty':
        if empty(stack):
            res.append(1)
        else:
            res.append(0)

#top일 때
    elif command[0] == 'top':
        if empty(stack):
            res.append(-1)
        else:
            res.append(stack[-1])

#결과 출력
for i in range(len(res)):
    print(res[i])

 

 

JAVA

import java.io.*;
import java.util.Stack;

// 10828번 스택
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));

        // 스택 사용
        Stack<Integer> s = new Stack<>();

        int num = Integer.parseInt(br.readLine());

        for (int i = 0; i < num; i++) {
            String[] input = br.readLine().split(" ");

            switch (input[0]) {
                case "push":
                    s.push(Integer.parseInt(input[1]));
                    break;
                case "pop":
                    if (s.empty()) {
                        bw.write("-1" + "\n");
                    } else {
                        bw.write(s.pop() + "\n");
                    }
                    break;
                case "size":
                    bw.write(s.size() + "\n");
                    break;
                case "empty":
                    if (s.empty()) {
                        bw.write("1" + "\n");
                    } else {
                        bw.write("0" + "\n");
                    }
                    break;
                case "top":
                    if (s.empty()) {
                        bw.write("-1" + "\n");
                    } else {
                        bw.write(s.peek() + "\n");
                    }
                    break;
            }

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