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");
}
}
반응형