[JAVA] 35. 괄호문자 제거 -STACK
2021. 10. 24. 12:31
728x90
설명
입력된 문자열에서 소괄호 ( ) 사이에 존재하는 모든 문자를 제거하고 남은 문자만 출력하는 프로그램을 작성하세요.
입력
첫 줄에 문자열이 주어진다. 문자열의 길이는 100을 넘지 않는다.
출력
남은 문자만 출력한다.
예시 입력 1
(A(BC)D)EF(G(H)(IJ)K)LM(N)
예시 출력 1
EFLM
내 풀이
import java.util.*;
public class Main {
public static void main(String[] args){
Scanner in=new Scanner(System.in);
String str = in.next();
Stack<Character> stack = new Stack<>();
String answer = "";
for(char ch : str.toCharArray()){
if(ch == '('){
stack.push(ch);
}else if(ch == ')'){
stack.pop();
}else{
if(stack.isEmpty()){
answer += ch;
}
}
}
System.out.println(answer);
}
}
다른 풀이
import java.util.*;
public class Main {
public static void main(String[] args){
Scanner in=new Scanner(System.in);
String str = in.next();
Stack<Character> stack = new Stack<>();
String answer = "";
for(char ch : str.toCharArray()){
if(ch == ')'){
while(stack.pop() != '(');
}else{
stack.push(ch);
}
}
for(char ch : stack){
answer += ch;
}
System.out.println( answer);
}
}
728x90
'알고리즘 > JAVA' 카테고리의 다른 글
[JAVA] 37. 후위식 연산(postfix) - stack (0) | 2021.10.24 |
---|---|
[JAVA] 36. 크레인 인형뽑기(카카오) (0) | 2021.10.24 |
[JAVA] 34. 올바른 괄호 - stack (0) | 2021.10.24 |
[JAVA] 33. k번째 큰수 (TreeSet) (0) | 2021.10.23 |
[JAVA] 32. 모든 아나그램찾기 (0) | 2021.10.23 |