본문 바로가기
Problem Solving/Baekjoon

[백준] 11899 괄호 끼워넣기 - Data Structure / Java

by graycode 2022. 11. 26.

 문제 링크

 

11899번: 괄호 끼워넣기

첫 번째 줄에 S를 올바른 괄호열으로 만들기 위해 앞과 뒤에 붙여야 할 괄호의 최소 개수를 출력합니다. 불가능한 경우는 주어지지 않습니다.

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 {

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

        String input = br.readLine();

        Stack<Character> stk = new Stack<>();
        int cnt = 0;
        for (int i = 0; i < input.length(); i++) {
            char token = input.charAt(i);
            if (token == '(')
                stk.push(token);
            else {
                if (stk.empty())
                    cnt++;
                else
                    stk.pop();
            }
        }

        cnt += stk.size();

        bw.write(String.valueOf(cnt));
        bw.flush();
    }

}

댓글