728x90
반응형
package test;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Stack;
public class Test_4949 {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
Stack<Character> stack = new Stack<>();
String str;
String result = "Yes";
while(true) {
str = br.readLine();
if(str.equals(".")) {
break;
}
for(int i = 0; i < str.length(); i++) {
char ch = str.charAt(i);
if(ch == '(' || ch == '[') {
stack.push(ch);
} else if(ch == ')') {
if(stack.isEmpty() || stack.peek() != '(') {
result = "No";
} else {
stack.pop();
}
} else if(str.charAt(i) != ']') {
if(stack.isEmpty() || stack.peek() != '[') {
result = "No";
} else {
stack.pop();
}
}
if(stack.empty()) {
result = "Yes";
} else {
result = "No";
}
}
sb.append(result + "\n");
}
System.out.println(sb);
}
}
result에 값을 주지않고 바로 값을 출력하는 방법을 사용하는 것이 더 좋은 방법으로 보임
"입력의 종료조건으로 맨 마지막에 점 하나(".")가 들어온다."의 의미가
So when I die (the [first] I will see in (heaven) is a score list). 마지막에 있는 점으로 생각했는데
다른 분들의 코드를 보니
예제입력 마지막 줄에 점 하나(".")가 있는 경우를 의미하는 것으로 보인다.
728x90
반응형
'알고리즘' 카테고리의 다른 글
(백준) 18258번 : 큐 2 - 자바[JAVA] (0) | 2021.09.15 |
---|---|
(백준) 10828번 : 스택 - 자바[JAVA] (0) | 2021.09.15 |
(백준) 11866번 : 요세푸스 문제 0 - 자바[JAVA] (0) | 2021.09.13 |
(백준) 2902번 : KMP는 왜 KMP일까? - 자바[JAVA] (0) | 2021.09.10 |
(백준) 2576번 : 홀수 - 자바[JAVA] (0) | 2021.09.10 |
댓글