SWEA_D4_5432
๐ [D4_5432] ์ ๋ง๋๊ธฐ ์๋ฅด๊ธฐ
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Stack;
public class Solution {
static char before_value;
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int tc = Integer.parseInt(br.readLine());
for (int t = 1; t <= tc; t++) {
sb.append("#").append(t).append(" ");
// ์ด ํฉ
int res = 0;
// ๊ดํธ ๊ด๋ฆฌํด์ค stack
Stack<Character> stack = new Stack<Character>();
// ๊ดํธ ์
๋ ฅ
String input = br.readLine();
for (int i = 0; i < input.length(); i++) {
// ๊ดํธ ํ๋์ฉ ๋ฐ์์ค๊ธฐ
char temp = input.charAt(i);
// '(' ์ด๋ฉด stack์ ์ ์ฅ
if (temp == '(') {
stack.add(temp);
}
// ๋ ์ด์ ธ์ธ ๊ฒฝ์ฐ
else if (temp == ')' && before_value == '(') {
stack.pop();
res += stack.size();
}
// ์์ ')' ์ธ ๊ฒฝ์ฐ
else if (temp == ')' && before_value == ')') {
stack.pop();
res += 1;
}
before_value = temp;
}
sb.append(res).append("\n");
}
System.out.println(sb);
}
}
๐ค ๋์ ์๊ฐ
์ด ๋ฌธ์ ๋ STACK์ ์ด์ฉํด์ ํ์ด ์ฃผ์๋ค.
์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ๋ ๋ ์ด์ ๋ฅผ ๋ง๋๋ ๊ฒฝ์ฐ์ด๊ธฐ ๋๋ฌธ์ ๋ ์ด์ ๋ฅผ ๊ธฐ์ค์ผ๋ก ๊ฒฝ์ฐ๋ฅผ ๋๋์๋ค.
โ(โ ์ด๋ฉด add ํ๊ณ โ)โ ์ธ ๊ฒฝ์ฐ์๋ โ()โ๊ฐ ํ ๋ฒ์ ๋์ค๋ ๋ ์ด์ ์ธ ๊ฒฝ์ฐ์ ๋ฐ๋ก ๋์ค์ง ์๊ณ ์์ ์์นํ โ)โ ์ธ ๊ฒฝ์ฐ๋ก ๋๋์ด ์ฃผ์๋ค.
๊ทธ๋ฆฌ๊ณ ๋ ์ด์ ์ธ ๊ฒฝ์ฐ์๋ ์ ํ์ดํ๊ฐ ์๋ฆฌ๊ธฐ ๋๋ฌธ์ ์คํ์ ์ฌ์ด์ฆ๋งํผ ๋ํด์ฃผ๊ณ
๋ค๋ฅธ ๊ฒฝ์ฐ๋ 1๋ง ๋ํด์ฃผ์๋ค.