본문 바로가기
알고리즘/JAVA

1. 올바른 괄호

by vivi 2021. 9. 22.
import java.util.*;

class Main {
	public String solution(String s) {
		String answer = "YES";
		int cnt = 0;
		for (char c : s.toCharArray()) {
			if (c == '(')
				cnt++;
			else {
				cnt--;
				if (cnt < 0)
					return "NO";
			}
		}
		if (cnt != 0)
			answer = "NO";
		return answer;
	}

	public static void main(String[] args) {
		Main T = new Main();
		Scanner kb = new Scanner(System.in);
		String s = kb.next();
		System.out.print(T.solution(s));
		kb.close();
	}
}

 

import java.util.*;

class Main {
	public String solution(String s) {
		String answer = "YES";
		Stack<Character> stack = new Stack<>();
		for (char c : s.toCharArray()) {
			if (c == '(')
				stack.push(c);
			else {
				if (stack.empty())
					return "NO";
				stack.pop();
			}
		}
		if (!stack.isEmpty())
			return "NO";
		return answer;
	}

	public static void main(String[] args) {
		Main T = new Main();
		Scanner kb = new Scanner(System.in);
		String s = kb.next();
		System.out.print(T.solution(s));
		kb.close();
	}
}

Stack 사용

'알고리즘 > JAVA' 카테고리의 다른 글

3. 크레인 인형뽑기(카카오)  (0) 2021.09.22
2. 괄호문자제거  (0) 2021.09.22
5. K번째 큰 수  (0) 2021.09.22
1. 두 배열 합치기  (0) 2021.09.21
4. 모든 아나그램 찾기  (0) 2021.09.20

댓글