๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์ฝ”๋”ฉํ…Œ์ŠคํŠธ/TIL

[99ํด๋Ÿฝ] 15์ผ์ฐจ ๋ฌธ์ œ: ๊ท ํ˜•์žกํžŒ ์„ธ์ƒ

by moon101 2025. 2. 8.

 

๋ฐฑ์ค€ ๊ท ํ˜•์žกํžŒ ์„ธ์ƒ์€ ()[] ๊ด„ํ˜ธ๊ฐ€ ๋‚˜์˜ค๋Š” ์Šคํƒ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋ณธ์ ์ธ ๋ฌธ์ œ์˜€๋‹ค. ์ค‘์š” ๋กœ์ง์€ isBalanced ๋ถ€๋ถ„์ธ๋ฐ ์—ด๋ฆฐ ๊ด„๋กœ๋ฉด ์Šคํƒ์— ๋„ฃ๊ณ  ๋‹ซํžŒ ๊ฐ€๋กœ์ด๋ฉด ์Šคํƒ์—์„œ pop์„ ํ•œ ๋‹ค์Œ ์Œ์ด ๋งž๋Š”์ง€ ํ™•์ธํ•˜๋ฉด ๋œ๋‹ค. ์ด๋•Œ ์Šคํƒ์ด ๋น„์–ด์žˆ๋Š”์ง€๋„ ์ž˜ ํ™•์ธ๋Š” ๋กœ์ง๋„ ์ž˜ ์ž‘์„ฑํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค. 

 

์•„๋ž˜ ์ฝ”๋“œ๋Š” ์ง€ํ”ผํ‹ฐ๊ฐ€ ์—ด์‹ฌํžˆ ์ž‘์„ฑํ•ด์ค€ ๋‹ต์ด๋‹ค

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

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        
        while (true) {
            String line = br.readLine();
            if (line.equals(".")) break;
            sb.append(isBalanced(line) ? "yes" : "no").append("\n");
        }
        System.out.print(sb);
    }
    
    private static boolean isBalanced(String str) {
        Stack<Character> stack = new Stack<>();
        
        for (char ch : str.toCharArray()) {
            if (ch == '(' || ch == '[') {
                stack.push(ch);
            } else if (ch == ')') {
                if (stack.isEmpty() || stack.pop() != '(') {
                    return false;
                }
            } else if (ch == ']') {
                if (stack.isEmpty() || stack.pop() != '[') {
                    return false;
                }
            }
        }
        
        return stack.isEmpty();
    }
}
 

 

๋Œ“๊ธ€