해결된 질문
작성
·
291
0
저는 괄호에 초점을 맞춰서 다르게 풀어보았습니다.
문자가 들어왔을 때, 괄호에 대한 스택이 비어있으면 괄호 밖에 있다고 판단하고 문자를 출력하는 방식으로 구현했습니다.
풀이에 논리적 오류가 있는지 확인해주시면 감사하겠습니다.
import java.util.Scanner;
import java.util.Stack;
public class Main {
public static String solution(String[] text) {
Stack<String> bracketStack = new Stack<>();
StringBuilder answer = new StringBuilder();
for (String word : text) {
if (word.equals("(")) bracketStack.push(word);
else if (word.equals(")")) bracketStack.pop();
else if (bracketStack.isEmpty()) answer.append(word);
}
return answer.toString();
}
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String[] text = input.next().split("");
System.out.println(solution(text));
}
}