Notice
Recent Posts
Recent Comments
Link
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Archives
Today
Total
관리 메뉴

TitanYang's Programming

[JAVA 기본 알고리즘] 백준 알고리즘 9012번 / 괄호 본문

JAVA

[JAVA 기본 알고리즘] 백준 알고리즘 9012번 / 괄호

타이탄양 2017. 8. 6. 23:15


이번 문제는 괄호가 정상적으로 작성이 되어있냐 안 되어 있냐를 판단해서 YES or NO 를 출력해주는 문제였습니다.


일단 코딩한 코드를 보여드릴게요!



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import java.util.Scanner;
public class Main {
 
    public static void jud(String s) {
        int x=0;
        for(int i=0;i<s.length();i++) {
            if(s.toCharArray()[i]=='('){
                x++;
            }else {
                x--;
            }
            if(x<0) {
                System.out.println("NO");
                return;
            }
        }
        if(x==0)System.out.println("YES");
        else System.out.println("NO");
    }
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        String s[] = new String[n+1];
        for(int i=1;i<=n;i++) {
            s[i]= sc.next();
        }
        for(int i=1;i<=n;i++) {
            jud(s[i]);
        }
    }
 
}
 
cs



굳이 jud 라는 메소드를 만들필요는 없었다고 생각은 들고있습니다만, 이렇게 특정기능을 하는 메소드를 만들어서 


사용을 하는 것이 더 큰 프로젝트롤 하는 데에 있어서 언젠가는 도움이 될 거라고 생각하며 메소드를 활용하는


연습을 하고있습니다. 이번 문제의 핵심은 어떻게 괄호가 정상적으로 쳐져있는지 잘못되어있는지 판단하는 것


이었는데요. 저는 지역변수 x를 만들어서, '('일때는 +1, ')'일때는 -1을하면서 -1이 되었을때는 정상적인 괄호처리가 


되었을 확률이 0이고, 0보다 큰 경우는 여는 괄호가 더 많은경우, 0일때만 정상적이라는 것을 파악해서 해결하였습니다.