-
boj)4949 - 균형잡힌 세상PS/boj 2020. 10. 13. 17:49
import java.io.*; import java.util.*; public class boj_4949 { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); static StringBuilder sb = new StringBuilder(); public static void main(String[] args) throws IOException { while (true) { String input = br.readLine(); if (input.equals(".")) { break; } sb.append(solve(input) ? "yes" : "no").append("\n"); } System.out.println(sb.toString()); } public static boolean solve(String input) { Stack<Character> stack = new Stack<>(); for (int i = 0; i < input.length(); i++) { char c = input.charAt(i); switch (c) { case '(': case '[': stack.push(c); break; case ')': if (stack.isEmpty() || stack.peek() != '(') { return false; } stack.pop(); break; case ']': if (stack.isEmpty() || stack.peek() != '[') { return false; } stack.pop(); break; default: break; } } return stack.isEmpty(); } }
- 깔끔하게 잘 푼거 같아서 다른풀이 참조함
- 입력받을때 끝에 . 이면 break;
- stack에 여는괄호 쌓기
- 닫는괄호가 나오면 스택 제일 위에있는 값과 비교, 스택이 비어있는 경우 예외 처리
- 끝까지 반복문을 돌고 스택이 비었는가 ? 를 리턴함
- 위에서 false에 안걸리고 스택이 비었다면 yes, 위에 걸리지는 않았지만 스택이 비지 않았다면 false
'PS > boj' 카테고리의 다른 글
boj)4889 - 안정적인 문자열 (0) 2020.10.14 boj)2504 - 괄호의 값 (0) 2020.10.14 boj)6198 - 옥상 정원 꾸미기 (0) 2020.10.13 boj)2164 - 카드2 (0) 2020.10.12 boj)2493 - 탑 (0) 2020.10.12