최대 1 분 소요

백준 괄호

  • 문제 https://www.acmicpc.net/problem/9012
import java.util.Scanner;  
import java.util.Stack;  
  
public class Stack_Practice {  
    public static void foo(String s) {  
        Stack<Character> stack = new Stack<>();  
  
        int i = 0;  
        while (i < s.length()) {  
            char c = s.charAt(i);  
  
            if (c == '(') {  
                stack.push(c);  
            } else { // ')'  
                if (stack.size() < 1) {  
                    System.out.println("NO");  
                    return;                }  
                stack.pop();  
            }  
            i++;  
        }  
  
        if(stack.size() > 0){  
            System.out.println("NO");  
        }else {  
            System.out.println("YES");  
        }  
  
    }  
    public static void main(String[] args) {  
        //input  
        Scanner scanner = new Scanner(System.in);  
        int T = scanner.nextInt();  
  
        for(int i = 0; i < T; i++){  
            foo(scanner.next());  
        }  
  
  
    }  
}

정리

  • charAt(index)
  • String 타입의 참조변수 뒤에 붙여서 사용하거나 next() nextLine()뒤에 붙여서 사용
  • 글자 수 하나하나를 인덱스로 인식하고 가져옴

참고 : https://colossus-java-practice.tistory.com/31

댓글남기기