SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
풀이
스택을 이용해서 괄호가 옳바른 괄호인지 체크하고 만약 마지막에 스택이 비어있지 않다면 괄호의 짝이 맞지 않게되므로 정답을 0으로 바꾸어주어 해결했습니다.
코드
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Stack;
public class Solution {
public static char[] brackets;
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder("");
Stack<Character> stk = new Stack<Character>();
for (int tc = 1; tc <= 10; ++tc) {
int N = Integer.parseInt(br.readLine());
brackets = new char[N];
brackets = br.readLine().toCharArray();
stk.push(brackets[0]);
int answer = 1;
for (int i = 1; i < N; ++i) {
if (brackets[i] == ')') {
if (stk.peek() != '(') {
answer = 0;
break;
}
else {
stk.pop();
continue;
}
}
else if (brackets[i] == ']') {
if (stk.peek() != '[') {
answer = 0;
break;
}
else {
stk.pop();
continue;
}
}
else if (brackets[i] == '}') {
if (stk.peek() != '{') {
answer = 0;
break;
}
else {
stk.pop();
continue;
}
}
else if (brackets[i] == '>') {
if (stk.peek() != '<') {
answer = 0;
break;
}
else {
stk.pop();
continue;
}
}
else {
stk.push(brackets[i]);
}
}
if (!stk.isEmpty()) {
answer = 0;
}
stk.clear();
sb.append("#").append(tc).append(" ").append(answer);
System.out.println(sb);
sb.setLength(0);
}
}
}
pyo7410/Algorithm
1일 1커밋을 목표로! Contribute to pyo7410/Algorithm development by creating an account on GitHub.
github.com
'알고리즘 > SWEA' 카테고리의 다른 글
[Java] SWEA 6719번 성수의 프로그래밍 (0) | 2021.03.10 |
---|---|
[Java] SWEA 1238번 Contact (0) | 2021.03.09 |
[Java] SWEA 1868번 파핑파핑 지뢰찾기 (0) | 2021.03.05 |
[Java] SWEA 1486번 장훈이의 높은 선반 (0) | 2021.03.04 |
[Java] SWEA 1249번 보급로 (0) | 2021.03.03 |