반응형
풀이과정
1) 여는괄호와 닫는괄호의 짝이 맞아야 함.
2) 여는괄호일 때 push
3) 닫는괄호일 때 pop
4) 빈 스택에서 pop 하거나, 스택이 비어있지 않을 때가 VPS가 아님.
내가 고민한 부분
1) input의 String의 괄호를 하나씩 다루는 방법 >> char 사용.
import java.util.Scanner;
import java.util.Stack;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
for(int t = 1; t <= T; t++) {
System.out.println(solve(sc.next()));
}
}
public static String solve(String s) {
Stack<Character> stack = new Stack<>();
for(int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if( c == '(') { //여는 괄호일 때 push
stack.push(c);
}
else if(c == ')') { //닫는 괄호일 때
if(stack.empty()) { //비어있으면 바로 끝
return "NO";
}
else //pop
stack.pop();
}
}
if(stack.empty()) { //비어있으면 짝이 맞는단 뜻
return "YES";
}
else //여는 괄호가 남아있으면 짝이 안 맞는단 뜻
return "NO";
}
}
자바에서 지원해주는 stack으로 풀이함.
배열이나 LinkedList로 스택 구현해서 풀이해보기.
반응형
'알고리즘 > 스텍' 카테고리의 다른 글
[백준] 30470 : 호반우가 학교에 지각한 이유 3 (JAVA) (0) | 2025.04.02 |
---|---|
[백준] 6198 : 옥상 정원 꾸미기 (JAVA) (0) | 2024.11.01 |
[백준] 17680 : 막대기 (0) | 2023.03.29 |
[백준] 1874 : 스택수열 (1) | 2023.03.24 |
[백준] 1725 : 히스토그램 (0) | 2023.03.24 |