2. 괄호문자제거
입력된 문자열에서 소괄호 ( ) 사이에 존재하는 모든 문자를 제거하고 남은 문자만 출력하는 프로그램을 작성하세요.
첫 줄에 문자열이 주어진다. 문자열의 길이는 100을 넘지 않는다.
남은 문자만 출력한다.
===================================================
문자가 )이면 (이 나올 때까지 pop을 한다. pop은 스택에서 빼낸 후 비교 하는 것이기에 (이 나온다는 것은 더 이상 스택에 (이 없다는 것이다. 그 후 스택 사이즈와 get을 활용하여 answer을 구한다.
import java.util.*;
class Main {
public String solution(String str){
String answer="";
Stack<Character> stack=new Stack<>();
for(char x:str.toCharArray()) {
if(x==')') {
while(stack.pop()!='(');}
else stack.push(x);}
for(int i=0;i<stack.size();i++) answer+=stack.get(i);
return answer;
}
public static void main(String[] args) {
Main main = new Main();
Scanner scan = new Scanner(System.in);
String n=scan.next();
System.out.println(main.solution(n));
}
}
1) Stack은 FILO라는 점