https://www.acmicpc.net/problem/11899

 

11899번: 괄호 끼워넣기

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

www.acmicpc.net

푸는 문제집에 유형이 스택이 많이 나오는 거 같다.

https://www.acmicpc.net/workbook/view/9432

 

문제집: 문자열 실버 문제 모음 (y_cat)

 

www.acmicpc.net

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

public class Main {
	public static void main(String[] args) throws Exception {

		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
		Stack<Character> stack = new Stack<>();

		String str = bf.readLine();
		int cnt = 0;
		for (int i = 0; i < str.length(); i++) {
			if (str.charAt(i) == '(') {
				stack.add(str.charAt(i));
				continue;
			}
			if (!stack.isEmpty()) {
				if (str.charAt(i) == ')') {
					stack.pop();
					continue;
				}
			}
			cnt++;
		}
		System.out.println(cnt + stack.size());
	}
}

+ Recent posts