728x90
반응형
▷ 문제
입력된 문자열에서 소괄호 ( ) 사이에 존재하는 모든 문자를 제거하고 남은 문자만 출력하는 프로그램을 작성하세요.
* 입력
첫 줄에 문자열이 주어진다. 문자열의 길이는 100을 넘지 않는다.
*출력
남은 문자만 출력한다.
▷ 입력 예시
(A(BC)D)EF(G(H)(IJ)K)LM(N)
▷ 출력 예시
EFLM
▷ 풀이
import java.util.Scanner;
import java.util.ArrayList;
import java.util.Stack;
public class Main {
public ArrayList<Character> solution(String str){
ArrayList<Character> answer = new ArrayList<Character>();
Stack<Character> stack = new Stack<Character>();
for(char x : str.toCharArray()){
if(x == '('){
stack.push(x);
} else if(x == ')'){
stack.pop();
}
if (x != '(' && x != ')'){
if(stack.isEmpty()){
answer.add(x);
}
}
}
return answer;
}
public static void main(String[] args){
Main main = new Main();
Scanner kb = new Scanner(System.in);
String str = kb.next();
kb.close();
for(char x : main.solution(str)){
System.out.print(x);
}
}
}
반응형
'Algorithm > Stack, Queue' 카테고리의 다른 글
[알고리즘]공주구하기 - Queue (0) | 2021.10.27 |
---|---|
[알고리즘]쇠막대기 (0) | 2021.10.26 |
[알고리즘]후위연산자(Postfix) (0) | 2021.10.26 |
[알고리즘]크레인 인형뽑기(카카오) (0) | 2021.10.25 |
[알고리즘]괄호가 올바른 괄호인지 판단하기 - Stack LIFO (0) | 2021.10.24 |