반응형
- 알고리즘 분류 : 문자열, 스택
- 사용 언어 : JAVA
- 문제 요점
- 괄호의 특성과 같은 스택 사용(FILO)
소스 설명은 주석을 참고해주세요.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Stack;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
// FILO 구조인 STACK을 이용
while(true) {
String s = br.readLine();
if(".".equals(s)) {
break;
}
Stack<Character> stack = new Stack<>();
char[] charArr = s.toCharArray();
String result = "yes";
for(char c : charArr) {
if(c == '(' || c=='[') {
stack.push(c);
}
else if(c==')') {
if(stack.isEmpty()) {
result="no";
break;
}
char check = stack.pop();
if(check!='(') {
result="no";
break;
}
}
else if(c==']') {
if(stack.isEmpty()) {
result="no";
break;
}
char check = stack.pop();
if(check!='[') {
result="no";
break;
}
}
}
if(!stack.isEmpty()) {
result = "no";
}
sb.append(result+"\n");
}
System.out.println(sb.toString());
}
}
반응형
'Algorithm' 카테고리의 다른 글
[BAEKJOON] 1103번 : 게임 (JAVA) (0) | 2022.11.27 |
---|---|
[BAEKJOON] 1937번 : 욕심쟁이 판다 (JAVA) (0) | 2022.11.26 |
[BAEKJOON] 3055번 : 탈출 (JAVA) (0) | 2022.11.19 |
[BAEKJOON] 11727번 : 2xn 타일링2 (JAVA) (0) | 2022.11.13 |
[BAEKJOON] 2193번 : 이친수 (JAVA) (0) | 2022.11.13 |