올바른 괄호는 ()이니까
(면 스택에 추가하고,
)면 제거시킨다.
근데 만약에 ) 문자인데 스택이 비어있다면, 이는 올바른 괄호열이 아니니 카운팅 해준다.
import java.util.*;
class Main {
public static void main(String args[]) throws Exception {
Scanner kb = new Scanner(System.in);
Stack<Character> stack = new Stack<>();
int cnt=0;
String s=kb.next();
for(int i=0; i<s.length(); i++){
char c=s.charAt(i);
if(c=='(') stack.add(c);
else{
if(stack.empty()) cnt++;
else stack.pop();
}
}
cnt+=stack.size();
System.out.println(cnt);
}
}
'📚 코딩테스트 > 백준 & 프로그래머스' 카테고리의 다른 글
[백준][JAVA]1764번 : 듣보잡 (0) | 2023.01.03 |
---|---|
[백준][JAVA]11047번 : 동전 0 (0) | 2023.01.02 |
[백준][JAVA]16499번 : 동일한 단어 그룹화하기 (0) | 2022.12.31 |
[백준][JAVA]17219번 : 비밀번호 찾기 (0) | 2022.12.29 |
[프로그래머스][JAVA]Level 0 : 평행 (0) | 2022.12.28 |