SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
String set = "()[]{}<>";
for (int testCase = 1; testCase <= 10; testCase++) {
br.readLine();
String str = br.readLine();
String temp = "";
int result = 1; // 끝날 때까지 1이면 정상, 0이면 비정상
int i = 0; // str에서의 index를 계산하기 위함
int len = 0; // temp의 길이를 넣을 것
/* str 끝까지 알아보자 */
while(i < str.length()) {
char c = str.charAt(i);
if(c == '(' || c == '[' || c == '{' || c == '<') {
temp += c;
} else {
len = temp.length();
/* temp의 길이가 0보다 크고,
지금 닫으려고 하는 괄호가 temp의 마지막 괄호와 맞물리는가? */
if(len > 0 && temp.charAt(len - 1) == set.charAt(set.indexOf(c) - 1)) {
temp = temp.substring(0, len - 1); // 괄호가 닫혔으니 날려보냄
/* 비정상적으로 괄호를 닫으려고 하면 탈출 */
} else {
result = 0;
break;
}
}
i++;
}
sb.append("#").append(testCase).append(" ").append(result).append("\n");
}
System.out.print(sb);
}
}
'OJ' 카테고리의 다른 글
[BOJ] 17070 파이프 옮기기 1 (JAVA) (0) | 2022.08.18 |
---|---|
[SWEA] 4012 요리사 (JAVA) (0) | 2022.08.13 |
[SWEA] 1210 Ladder1 (JAVA) (0) | 2022.08.02 |
[BOJ] 1543 문서 검색 (JAVA) (0) | 2022.07.24 |
[BOJ] 2615 오목 (JAVA) (0) | 2022.07.24 |