https://www.acmicpc.net/problem/11899
코드설명
스택(Stack) 을 활용합니다.
Stack에 올바른 괄호일경우 해당 모양의 괄호는 빼주면서 처리하면 됩니다.
마지막에 Stack.size()를 출력함으로써 올바르지 않은 괄호의 개수를 모두 셀 수 있습니다.
코드
package Main;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Stack;
import java.util.StringTokenizer;
public class Main {
static int N, M, S, P, A, B, X, L, R, C, n, k, m, l, K, D, T;
static int answer = 0;
static Stack<Character> stack = new Stack<>();
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
// StringTokenizer st = new StringTokenizer(br.readLine());
String str = br.readLine();
for(int i=0; i<str.length(); i++) {
if(str.charAt(i) == ')') {
if(!stack.isEmpty() && stack.peek() == '(') {
stack.pop();
}else {
stack.push(')');
}
}else if(str.charAt(i) == '(') {
stack.push('(');
}
}
System.out.println(stack.size());
}
}
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 32403 전구 주기 맞추기 - 구현(Implementation) JAVA (0) | 2024.10.23 |
---|---|
[백준] 3568 iSharp - 문자열(String) + 파싱(Parsing) JAVA (0) | 2024.10.08 |
[백준] 2852 NBA 농구 - 문자열(String) + 정렬(Sort) JAVA (0) | 2024.10.08 |
[백준] 3187 양치기 꿍 - BFS(넓이우선탐색) JAVA (0) | 2024.10.04 |
[백준] 3184 양 - BFS(넓이우선탐색) JAVA (0) | 2024.10.04 |