반응형
문제 : https://www.acmicpc.net/problem/4949
풀이 :
스택에 여는 괄호들을 쌓아두고, 괄호를 하나씩 빼면서 체크했다.
출력조건이 뭔가 안맞았는지 계속 틀렸다고 떠서... 찾느라 고생했다
결과는 같은데 띄어쓰기가 껴있었다...
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
while(true) {
String txt = br.readLine();
//종료조건
if(txt.equals(".")) {
break;
}
System.out.println(stacks(txt));
}
}
static String stacks(String txt) {
//괄호 앞 뒤 짝이 맞아야된다. ( 소괄호 ) [ 대괄호 ]
Stack<String> sQ = new Stack<String>();
String[] txtArr = txt.split("");
String tmp = "";
for (int i = 0; i < txtArr.length; i++) {
//열림괄호 입력
if(txtArr[i].equals("(")){
sQ.push(txtArr[i]);
}
if(txtArr[i].equals("[")) {
sQ.push(txtArr[i]);
}
if(txtArr[i].equals(")")) {
if(sQ.isEmpty()) {
return "no";
}else {
tmp = sQ.peek();
if(!tmp.equals("(")) {
return "no";
}else {
sQ.pop();
}
}
}
if(txtArr[i].equals("]")) {
if(sQ.isEmpty()) {
return "no";
}else {
tmp = sQ.peek();
if(!tmp.equals("[")) {
return "no";
}else {
sQ.pop();
}
}
}
}
if(sQ.isEmpty()) {
return "yes";
}else {
return "no";
}
}
반응형
'Java > Algorithm' 카테고리의 다른 글
[Java-Algorithm] 백준 2606 바이러스 풀이 (0) | 2021.06.14 |
---|---|
[Java-Algorithm] 백준 2217 로프 풀이 (0) | 2021.06.14 |
[Java-Algorithm] 백준 1759 암호 만들기 (0) | 2021.06.10 |
[Java-Algorithm] 백준 10808 알파벳 개수 풀이 (0) | 2021.06.09 |
[Java-Algorithm] 백준 1541 잃어버린 괄호 풀이 (0) | 2021.06.09 |