<섹션5-Stack,Queue> 2. 괄호문자제거

조이·2022년 1월 19일
0

자바 알고리즘

목록 보기
36/41
post-thumbnail

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라는 점

profile
joy_study

0개의 댓글