728x90
300x250
https://www.acmicpc.net/problem/4949
백준 4949번 반례모음
---------------------------------------------------------
([)]).
.
답:no
---------------------------------------------------------
(
.
답: no
---------------------------------------------------------
[(()(])).
.
답: no
---------------------------------------------------------
].
.
답: no
---------------------------------------------------------
<Java 코드>
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Stack;
public class Main {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
while (true) {
String res = "yes";
String st = br.readLine();
// 온점만 있으면 종료
if(st.equals("."))
break;
// 괄호빼고는 치환
st = st.replaceAll("[a-zA-Z .]", "");
Stack<Character> stack = new Stack<Character>();
for (int i = 0; i < st.length(); i++) {
// 여는 괄호만 stack에 보관
if(st.charAt(i)=='(' || st.charAt(i)=='[')
stack.push(st.charAt(i));
// 닫는 괄호가 나오면 맨앞의 괄호와 쌍이 맞는지 체크
else {
if(stack.empty()) {
res = "no";
break;
}
char ch = stack.peek();
if((st.charAt(i)==')' && ch == '[')
|| (st.charAt(i)==']' && ch == '(')){
res="no";
} else {
stack.pop();
}
}
}
//여는괄호만 남아있는 경우도 no임
if(!stack.isEmpty())
res = "no";
System.out.println(res);
}
}
}
728x90
'알고리즘 > 스택' 카테고리의 다른 글
백준 1874번: 스택 수열 [스택][Stack] -Java (0) | 2023.12.11 |
---|---|
백준 5397번: 키로거 [스택][Stack][덱][Deque][자료구조]- Java (0) | 2023.12.11 |
백준 10799번: 쇠막대기 [스택][Stack][누적합] -Java (1) | 2023.12.06 |
백준 2841번: 외계인의 기타 연주 (0) | 2020.03.06 |
SWEA - 8931. 제로 (0) | 2020.02.29 |