[백준 25918] 북극곰은 괄호를 찢어 [Java]
2025. 10. 3. 23:41ㆍPS 풀이/Baekjoon Online Judge
728x90
문제
25918번: 북극곰은 괄호를 찢어
boj.ma
풀이
문제 요약
괄호로 이루어진 문자열을 만들기 위해 몇 번에 걸쳐 O와 X를 놓아야 하는지 계산하자.
아이디어
O 또는 X는 결국 ‘( )’ 또는 ‘) (’가 된다. 즉 어떤 괄호에 대해 이전 괄호와 같지 않다면 한 번에 놓을 수 있다.
스택에 괄호를 쌓으며, 가장 큰 스택의 크기를 출력하자. 만약 스택에 괄호가 남았다면 원하는 문자열을 만들 수 없으니 -1을 출력하자.
// Solve
List<Character> stack = new ArrayList<>();
int cnt = 0;
for (char ch : S) {
if (stack.isEmpty() || stack.get(stack.size() - 1) == ch) {
stack.add(ch);
cnt = Math.max(cnt, stack.size());
} else {
stack.remove(stack.size() - 1);
}
}
풀이 시간
10분
소스코드
https://github.com/rogi-rogi/problem-solving/blob/main/baekjoon-online-judge/easy/25918.java
problem-solving/baekjoon-online-judge/easy/25918.java at main · rogi-rogi/problem-solving
Daily Problem Solving Challenges. Contribute to rogi-rogi/problem-solving development by creating an account on GitHub.
github.com
728x90
'PS 풀이 > Baekjoon Online Judge' 카테고리의 다른 글
| [백준 25046] 사각형 게임 (Small) [Java] (0) | 2025.10.06 |
|---|---|
| [백준 02643] 색종이 올려 놓기 [Java] (0) | 2025.10.04 |
| [백준 03614] 정사각형 [Java] (0) | 2025.10.02 |
| [백준 27941] 하이퍼 가지 따기 [Java] (0) | 2025.10.01 |
| [백준 20165] 인내의 도미노 장인 호석 [Java] (0) | 2025.09.29 |