< 문제 정보 >
[ 문제 ]
올바른 괄호(VPS)인지 검사하는 프로그램 작성
올바른 괄호는 열린 괄호('(')와 닫힌 괄호(')')가 한 쌍으로 이뤄져야 한다.[ 예시 ]
- 입력 : (())() -> 출력 : YES
- 입력 : (())(( -> 출력 : NO
[ 규칙 ]
- 2 <= 괄호 문자열의 길이 <= 50
[ 백준 ]
- 자료구조, 스택
- 출처 : https://www.acmicpc.net/problem/9012
< 풀이 >
- 스택 클래스말고 다른 형식으로 해봤다.
그래도 스택과는 같은 형식이다- 결과값이 어느 순간에도 0보다 작으면 "NO"
- 최종 결과값이 0이면 YES, 그렇지 않으면 "NO"
[ 코드 ]
import java.util.Scanner; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner input = new Scanner(System.in); int T = input.nextInt(); for (int i=0;i<T;i++) { String str = input.next(); Boolean flag = true; int result = 0; for (int j=0;j<str.length();j++) { char c = str.charAt(j); if (c=='(') result++; else if (c==')') result--; if (result < 0) flag = false; } if (flag&&result==0) System.out.println("YES"); else System.out.println("NO"); } } }
프로그래머스의 올바른 괄호문제와 같은 문제