[PS] 99ํด๋ฝ ์ฝํ ์คํฐ๋ 28์ผ์ฐจ TIL (๊ดํธ ํ์ ํ๊ธฐ)
ํ๊ทธ: 99ํด๋ฝ, PS, TIL, ์คํ/ํ, ์ฝ๋ฉํ ์คํธ์ค๋น, ํญํด99
์นดํ ๊ณ ๋ฆฌ: PS
๋ฌธ์
์ค๋ช
์ ์ถ๋ ฅ ์์ ์ฒ๋ผ ๊ดํธ ์กฐํฉ์ ํ์ ์์ผฐ์ ๋ ์ฌ๋ฐ๋ฅธ ๊ดํธ ์กฐํฉ์ ๊ฐฏ์๋ฅผ ๋ฐํํด์ผ ํ๋ค. ๋ฌธ์์ด์ ๊ธธ์ด๋งํผ ๋งจ ์ ๊ดํธ๋ฅผ ๋งจ ๋ค๋ก ์ฎ๊ธฐ๋ ์์ ์ ๋ฐ๋ณต ํ๋ฉด์ ์ฌ๋ฐ๋ฅธ ๋ฌธ์์ด์ธ์ง ํ์ธํด์ผ ํ๋ค.
ํ์ด
์ฌ๋ฐ๋ฅธ ๊ดํธ๊ฐ ๋๊ธฐ ์ํด์ ์ฌ๋ ๊ดํธ('(', '{', '['
) ์ ๋ซ๋ ๊ดํธ๊ฐ ์ง์ ์ด๋ค์ผ ํ๋ค.
์ฌ๋ ๊ดํธ๊ฐ ๋์ฌ๋๋ง๋ค ์คํ์ ๋ฃ์ด๋๋ค๊ฐ ๋ซ๋ ๊ดํธ๋ฅผ ๋ง๋๋ฉด ์คํ์ ๋ฃ์ด๋์๋ ์ฌ๋ ๊ดํธ๋ฅผ ๊บผ๋ธ๋ค.
์คํ์ด ๋ชจ๋ ๋น์๋ค๋ฉด ๋ฌธ์์ด๋ก ์
๋ ฅ๋ ๊ดํธ๊ฐ ๋ชจ๋ ์ฌ๋ฐ๋ฅด๋ค๋ ์๋ฏธ์ด๋ฏ๋ก answer ๋ฅผ ์ฆ๊ฐ์ํจ๋ค.
์ด ์์
์ ๋ฌธ์์ด์ ํ์ ํ๋ฉด์ ๊ณ์ ๋ฐ๋ณตํ๋ค.
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
class Solution {
public int solution(String s) {
int answer = 0;
for (int i = 0; i < s.length(); i++) {
String s1 = s.substring(i) + s.substring(0, i);
if (check(s1)) {
answer++;
}
}
return answer;
}
boolean check(String s) {
ArrayDeque<Character> stack = new ArrayDeque<>();
char[] charArray = s.toCharArray();
for (char ch : charArray) {
if (ch == '(' || ch == '[' || ch == '{') {
stack.push(ch);
} else if (ch == ')') {
if (stack.isEmpty() || !stack.pop().equals('(')) {
return false;
}
} else if (ch == ']') {
if (stack.isEmpty() || !stack.pop().equals('[')) {
return false;
}
} else if (ch == '}') {
if (stack.isEmpty() || !stack.pop().equals('{')) {
return false;
}
}
}
return stack.isEmpty();
}
}
๋๊ธ๋จ๊ธฐ๊ธฐ