👽 괄호 문자 제거
👾 문제
- 소괄호 사이에 있는 문자를 제거하고 남은 문자만 출력하는 프로그램이다.
👾 풀이
🤖 어떻게 문제를 풀 것인가?
Stack
을 사용하자.
- () 안의 문자는 입력이 안된다.
(
입력 된다면 Stack.push
)
입력 된다면 Stack.pop
- 만약 Stack이 비어 있다면, 문자열을 저장한다.
👾 소스코드
🤖 메인 메소드만 이용
package algolecture;
import java.util.Scanner;
import java.util.Stack;
public class Main37 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
Stack<Character> stack = new Stack<>();
String str = scan.nextLine();
String answer = "";
for(char x : str.toCharArray()){
if(x == '(')
stack.push(x);
else if(x ==')')
stack.pop();
else if(stack.isEmpty()){
answer += x;
}
}
System.out.print(answer);
}
}
🤖 solution 메소드를 따로 저장하자.
package algolecture;
import java.util.Scanner;
import java.util.Stack;
public class Main37_solution {
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) {
Main37_solution T = new Main37_solution();
Scanner kb = new Scanner(System.in);
String str = kb.next();
System.out.println(T.solution(str));
}
}