본문 바로가기
Problem Solving/Baekjoon

[백준] 7585 Brackets - Data Structure / Java

by graycode 2023. 7. 29.

 문제 링크

 

7585번: Brackets

As a C/Java programmer, you will be used to dealing with brackets. For the purpose of this problem, we will consider three type of bracket, round (), square [] and curly {}. As you know, every opening bracket must have a corresponding closing bracket, and

www.acmicpc.net

 

 풀이 과정

 

 풀이 코드

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

public class Main {

    static Stack<Character> stk = new Stack<>();

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

        String input;
        while (!(input = br.readLine()).equals("#")) {
            sb.append(isLegal(input) ? "Legal\n" : "Illegal\n");
            stk.clear();
        }

        bw.write(sb.toString());
        bw.flush();
    }

    private static boolean isLegal(String input) {
        for (char c : input.toCharArray()) {
            if (c == '(' || c == '[' || c == '{') stk.push(c);
            else if (c == ')' && stk.pop() != '(') return false;
            else if (c == ']' && stk.pop() != '[') return false;
            else if (c == '}' && stk.pop() != '{') return false;
        }

        return stk.isEmpty();
    }

}

댓글