코딩테스트

BOJ : 28278

joonwoong 2024. 4. 5. 17:12

1. 문제

 

2. 풀이

if-elseif 또는 switch case 문을 이용해서 명령마다 따로 조건에 맞게 처리하면 되는데 나같은 경우는 if-elseif 문을 사용했음

 

3.코드

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

public class Q28278_boj {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st ;

        int TC = Integer.parseInt(br.readLine());
        Stack<Integer> stack = new Stack<>();

        for (int i = 0; i < TC; i++) {
            st = new StringTokenizer(br.readLine());
            int order = Integer.parseInt(st.nextToken());

            if (order == 1) {
                stack.add(Integer.parseInt(st.nextToken()));
            }
            else if (order == 2) {
                if (!stack.isEmpty()) {
                    bw.write(stack.pop() + "\n");
                }
                else {
                    bw.write(-1 + "\n");
                }
            }
            else if (order == 3) {
                bw.write(stack.size() + "\n");
            }
            else if (order == 4) {
                if (stack.isEmpty()) {
                    bw.write(1 + "\n");
                }
                else {
                    bw.write(0 + "\n");
                }
            } else if (order == 5) {
                if (!stack.isEmpty()) {
                    bw.write(stack.peek() + "\n");
                }
                else {
                    bw.write(-1 + "\n");
                }
            }
        }
        bw.flush();
    }
}

 

4. 결과

 

5. 소감

스택 메서드 연습 문제라고 생각된다.

'코딩테스트' 카테고리의 다른 글

BOJ : 11899  (0) 2024.04.05
BOJ : 10799  (0) 2024.04.05
BOJ : 5397  (0) 2024.04.04
프로그래머스 : 같은 숫자는 싫어  (0) 2024.03.19
SWEA 1219 : 길찾기  (0) 2024.03.19