BOJ 9012 괄호

Jmnote (토론 | 기여)님의 2023년 9월 5일 (화) 23:21 판
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

1 개요[ | ]

BOJ 9012 괄호
  • 주어진 문자열이 올바른 괄호열인지 판단하는 문제
  • 알고리즘 분류: 스택

2 C++[ | ]

#include <bits/stdc++.h>
using namespace std;

bool isVPS(string s) {
    int depth = 0;
    for(long unsigned int i=0; i<s.length(); i++) {
    	char ch = s[i];
    	if( ch == '(' ) depth++;
    	else depth--;
    	if( depth < 0 ) return false;
    }
    if( depth != 0 ) return false;
    return true;
}

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    
    int T;
    cin >> T;
    while(T--) {
        string s;
        cin >> s;
        cout << (isVPS(s) ? "YES\n" : "NO\n");
    }
}

3 Java[ | ]

import java.util.Scanner;
public class Main {
	static boolean is_vps(String str) {
		int depth = 0;
		for(int i=0; i<str.length(); i++) {
			char ch = str.charAt(i);
			if( ch == '(' ) depth++;
			else depth--;
			if( depth < 0 ) return false;
		}
		if( depth != 0 ) return false;
		return true;
	}
	public static void main(String args[]) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		for(int i=0; i<n; i++) {
			System.out.println( is_vps(sc.next()) ? "YES" : "NO" );
		}
	}
}
문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}