작성
·
381
0
import java.util.*;
/*
** 괄호문자제거
* input
(A(BC)D)EF(G(H)(IJ)K)LM(N)
* output
EFLM
*/
class Problem2 {
public String solution(String str) {
String answer = "";
Stack<Character> stack = new Stack<>();
int cnt = 0;
// solution 1
for (char x : str.toCharArray()) {
// push: stack에 할당
if (x == '(') {
stack.push(x);
cnt++;
} else if (x == ')') {
stack.pop();
cnt--;
} else {
if(cnt <= 0) answer += x;
}
}
// solution 2
// for (char x : str.toCharArray()) {
// if (x == '(') stack.push(x);
// else if (x == ')') stack.pop();
// else if (stack.isEmpty()) answer += x;
// }
return answer;
}
public static void main(String[] args) {
Problem2 T = new Problem2();
Scanner kb = new Scanner(System.in);
String str = kb.next();
System.out.println(T.solution(str));
}
}
혹시 cnt 변수를 선언하여 for 한번으로 풀었는데 일단 accept 떠서 어떤 문제나 예외가 있는 지 한번 봐주실 수 있을까요????