1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
import java.util.*;
class Solution {
public static boolean Check(String s) {
Stack<Character> st = new Stack<Character>();
st.add(s.charAt(0));
for (int i = 1; i < s.length(); i++) {
if (st.isEmpty()) {
st.add(s.charAt(i));
continue;
}
// 괄호 체크
if (st.peek() == '(' && s.charAt(i) == ')') {
st.pop();
} else if (st.peek() == '[' && s.charAt(i) == ']') {
st.pop();
} else if (st.peek() == '{' && s.charAt(i) == '}') {
st.pop();
} else
st.add(s.charAt(i));
}
// 스택이 비어있을 경우 올바른 괄호
if (st.isEmpty())
return true;
else
return false;
}
public int solution(String s) {
int answer = 0;
for (int i = 0; i < s.length(); i++) {
s = s.substring(1) + s.charAt(0);
if (Check(s))
answer++;
}
return answer;
}
}
|
cs |
스택으로 괄호가 올바른지 검사하였다.
'Programmers > Level2' 카테고리의 다른 글
행렬의 곱셈 (0) | 2021.08.05 |
---|---|
[3차] 방금그곡 (0) | 2021.08.04 |
쿼드압축 후 개수 세기 (0) | 2021.08.03 |
메뉴 리뉴얼 (0) | 2021.08.03 |
숫자의 표현 (0) | 2021.08.03 |