✔️내가 푼 답-> 정답
String을 Char로, Char를 String
import java.util.*;
public class Main {
public static String solution(String input){
Stack<Character> st = new Stack<>();
String answer ="";
for(char x : input.toCharArray()) {
if(x=='(') st.push(x);
else if(st.isEmpty()) answer+=String.valueOf(x);
else if(x==')') st.pop();
}
return answer;
}
public static void main(String[] args){
Scanner kb = new Scanner(System.in);
String input = kb.next();
System.out.println(solution(input));
}
}
✔️ 강의 답
while(st.pop()!='(');
이 표현이 중요하다
처음 배우는 표현
일단 먼저 뽑고 같은지 확인
따라서 '('까지 뽑고 같기 때문에 멈춘다.
import java.util.*;
public class Main {
public static String solution(String input){
String answer="";
Stack<Character>st = new Stack<>();
for(char x : input.toCharArray()) {
if(x==')') {
while(st.pop()!='(');
}
else st.push(x);
}
for(int i=0;i<st.size();i++)answer+=st.get(i);
return answer;
}
public static void main(String[] args){
Scanner kb = new Scanner(System.in);
String input = kb.next();
System.out.println(solution(input));
}
}