[코테5_2] 괄호문자제거

byeol·2022년 12월 9일
0

코딩테스트

목록 보기
30/42

✔️내가 푼 답-> 정답

String을 Char로, Char를 String

  • Character.toString(array[j])
  • String.valueOf(ary);
  • String을 선언할 때 파라미터로 char[]를 넣을 수 있고 인덱스도 정할 수 있다.
    change = new String(array, 1, 5);
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));
 }
}
profile
꾸준하게 Ready, Set, Go!

0개의 댓글