백준 - 10799번 - 쇠막대기

이상훈·2023년 4월 16일
0

10799번

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

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

		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));

		System.out.println(solve(bf.readLine()));

	}

	static int solve (String text) {

		Stack<String> stack = new Stack<>();
		int cnt = 0;
		for (int i = 0; i<text.length(); i++) {
			if (text.charAt(i) == '(') {
				stack.push("(");
				cnt++;
			} else {
				if (text.charAt(i-1) == '(') {
					stack.pop();
					cnt = (cnt-1) + (stack.size());
				} else {
					stack.pop();
				}
			}
		}

		return cnt;
	}
}

풀이


스택과 int 변수하나를 받아서 진행형인 막대기 수와 지금까지 총 막대기 수를 체크하면 쉽게 풀 수 있었다.

0개의 댓글