[코테5_1] 올바른 괄호

byeol·2022년 12월 8일
0

코딩테스트

목록 보기
29/42

✔️ 내가 푼 거 다 풀지 못했다.

import java.util.*;


public class Main {
 public static String solution(String input){
	 String answer ="";
	 Queue<Character> q = new LinkedList<>();
	 char[] arr = input.toCharArray();
	 for(int i=0;i<arr.length;i++) {
		 q.offer(arr[i]);
	 }
	 while() {
		 char first =q.poll();
		 if(first !='(') q.offer(first);
		 else {
			 char second =q.poll();
			 if(second != ')') q.offer(second);
		  }
		 }
		 	 
	 
	 
	 
	 return answer;
	
	 
 }
 public static void main(String[] args){
  Scanner kb = new Scanner(System.in);
  String input = kb.next();
  System.out.println(solution(input));
 }
}

✔️ 강의 30% 듣고 힌트 얻음 -> stack을 이용한다.

```java
import java.util.*;


public class Main {
 public static String solution(String input){
	 Stack<Character> st = new Stack<>();
	 
	 for(char x : input.toCharArray()) {
		 if(x=='(') st.push(x);
		 if(x==')') { 
			 if(st.isEmpty()) return "NO";
			 else st.pop();
		   }
		 }

	
	 return "YES";
	
	 
 }
 public static void main(String[] args){
  Scanner kb = new Scanner(System.in);
  String input = kb.next();
  System.out.println(solution(input));
 }
}

(넣고 )만나면 stact에 쌓여있는 ( 빼기
-push
-pop
-isEmpty

💡괄호문제는 십중팔구 -> Stack

✔️강의 다 보고

import java.util.*;


public class Main {
 public static String solution(String input){
	 Stack<Character> st = new Stack<>();
	 
	 for(char x : input.toCharArray()) {
		 if(x=='(') st.push(x);
		 if(x==')') { 
			 if(st.isEmpty()) return "NO";
			 else st.pop();
		   }
		 }

	 if(!st.isEmpty())return "NO";
	 else return"YES";	
	 
 }
 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개의 댓글