개키우는개발자 : )

[자바 알고리즘] 올바른 괄호 본문

Algorithm Programming/Java

[자바 알고리즘] 올바른 괄호

DOGvelopers 2020. 1. 9. 10:45
반응형

광고 클릭은 개발자(저) 에게 큰 힘이 됩니다!!'ㅁ'

 

| 문제

괄호가 입력되면 올바른 괄호이면 “YES", 올바르지 않으면 ”NO"를 출력합니다. (())() 이것은 괄호의 쌍이 올바르게 위치하는 거지만, (()()))은 올바른 괄호가 아니다.

 

| 입력설명

괄호 문자열이 입력됩니다. 문자열의 최대 길이는 30이다

 

| 출력설명

YES, NO를 출력한다.

 

| 입력 예제

(()(()))(()

 

| 출력 예제

NO

 

| 풀이

'(' = +1 , ')' = -1 이런식으로 쌍이 맞으면 결국엔 (())() = 0 의 값이 나오며 (()())) = -1 즉 0보다 작은 값이 나올 경우 올바른 쌍이 아니다.

import java.util.Scanner;

public class Test8 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str = sc.nextLine();
        char[] a = str.toCharArray();
        int i,cnt=0;
        for(i=0; i<a.length; i++){
            if(a[i] == '(') cnt++;
            else if(a[i] == ')') cnt--;
            if(cnt<0) break;
        }
        if(cnt == 0) System.out.printf("YES\n");
        else System.out.printf("NO\n");
    }
}
반응형
Comments