[백준, JAVA] 9012번 : 괄호

seunguk noh·2023년 7월 26일
0

Algorithm

목록 보기
5/23

1. 문제

2. 아이디어

  • 괄호는 방향성이 있다. '(' 혹은 ')'
  • 닫히기 위해서는 괄호의 수가 짝수어야 한다.
  • 짝수개이더라도, ')'가 '('보다 먼저 오면 안된다.

3. 코드


import java.util.Scanner;

public class BOJ_2_9012 {

	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
        
        int T = sc.nextInt();
        String[] arr = new String[T];
        
        for(int i=0; i<T; i++) {
        	arr[i]=sc.next();
        	
        	boolean ans = true; // ( 가 오지 않았는데 ) 괄호가 먼저 오는 경우는 무조건 NO
        	int count=0;
        	
        	for (int j = 0; j < arr[i].length(); j++) {
        		String str = arr[i];
        		char sub = str.charAt(j);
        		
        		if(sub=='(') count++;
        		else if(sub==')') count--;
        		
        		if(count<0) ans=false;

			}
        	if(count==0 && ans) System.out.println("YES");
        	else System.out.println("NO");
        }
	
	}
}

4. 느낀점

  • 배열과 홀, 짝수 개념만을 이용해서 풀었으나 스터디 조원들은 스택을 활용하여 풀었다.

  • 스택과 외의 자료구조에도 익숙해져서, 풀이 과정에서 여러 자료구조를 고려할 수 있도록 해야겠다.

0개의 댓글