TitanYang's Programming
[JAVA 기본 알고리즘] 백준 알고리즘 9012번 / 괄호 본문
이번 문제는 괄호가 정상적으로 작성이 되어있냐 안 되어 있냐를 판단해서 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일때만 정상적이라는 것을 파악해서 해결하였습니다.
'JAVA' 카테고리의 다른 글
[JAVA 기본 알고리즘] 백준 알고리즘 2455번 / 지능형 기차 (0) | 2017.08.22 |
---|---|
[JAVA 기본 알고리즘] 백준 알고리즘 1158번 / 조세퍼스 (0) | 2017.08.17 |
[JAVA 기본 알고리즘] 백준 알고리즘 1110번 / 더하기 사이클 (0) | 2017.08.10 |
[JAVA 기본 알고리즘] 백준 알고리즘 9506번 / 약수들의 합 (0) | 2017.08.06 |
[JAVA 기본 알고리즘] 백준 알고리즘 2291번 / 사나운개 (0) | 2017.08.03 |