boj)4949 - 균형잡힌 세상
2020. 10. 13. 17:49ㆍPS/boj
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 |