
๋ฐฑ์ค ๊ท ํ์กํ ์ธ์์ ()[] ๊ดํธ๊ฐ ๋์ค๋ ์คํ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ๋ ๊ธฐ๋ณธ์ ์ธ ๋ฌธ์ ์๋ค. ์ค์ ๋ก์ง์ isBalanced ๋ถ๋ถ์ธ๋ฐ ์ด๋ฆฐ ๊ด๋ก๋ฉด ์คํ์ ๋ฃ๊ณ ๋ซํ ๊ฐ๋ก์ด๋ฉด ์คํ์์ pop์ ํ ๋ค์ ์์ด ๋ง๋์ง ํ์ธํ๋ฉด ๋๋ค. ์ด๋ ์คํ์ด ๋น์ด์๋์ง๋ ์ ํ์ธ๋ ๋ก์ง๋ ์ ์์ฑํด์ฃผ์ด์ผ ํ๋ค.
์๋ ์ฝ๋๋ ์งํผํฐ๊ฐ ์ด์ฌํ ์์ฑํด์ค ๋ต์ด๋ค
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
while (true) {
String line = br.readLine();
if (line.equals(".")) break;
sb.append(isBalanced(line) ? "yes" : "no").append("\n");
}
System.out.print(sb);
}
private static boolean isBalanced(String str) {
Stack<Character> stack = new Stack<>();
for (char ch : str.toCharArray()) {
if (ch == '(' || ch == '[') {
stack.push(ch);
} else if (ch == ')') {
if (stack.isEmpty() || stack.pop() != '(') {
return false;
}
} else if (ch == ']') {
if (stack.isEmpty() || stack.pop() != '[') {
return false;
}
}
}
return stack.isEmpty();
}
}
'์ฝ๋ฉํ ์คํธ > TIL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[99ํด๋ฝ] 17์ผ์ฐจ ๋ฌธ์ : Relative Ranks (0) | 2025.02.11 |
---|---|
[99ํด๋ฝ] 16์ผ์ฐจ ๋ฌธ์ : ๋ ๋งต๊ฒ (0) | 2025.02.11 |
[99ํด๋ฝ] 14์ผ์ฐจ ๋ฌธ์ : ์๋น ๋ฉ๋ด (1) | 2025.02.06 |
[99ํด๋ฝ] 13์ผ์ฐจ ๋ฌธ์ : ํ (0) | 2025.02.06 |
[99ํด๋ฝ] 12์ผ์ฐจ ๋ฌธ์ : ๋ง๋๊ธฐ (1) | 2025.02.04 |
๋๊ธ