99클럽 모의고사를 보고나서 나의 문제점을 발견했다. 문제를 보면 어떤 유형인지 파악하지 못한다는 것이다. 유형을 생각지도 않은 채 무작정 문제를 풀어 생긴 문제라 본다. 알고리즘 문제 별로 푸는 연습을 해야겠다. 오늘은 Stack 문제를 풀어볼 것이다.
문제
9012번: 괄호
괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고
www.acmicpc.net
1 번째 시도
- 조건에 부합하면 스택에 넣고 차례차례 빼는 느낌의 문제면 Stack문제라 생각하기
import java.util.*;
import java.io.*;
class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int T = Integer.parseInt(br.readLine());
for (int i = 0; i < T; i++) {
String input = br.readLine();
if (isValidParentheses(input))
System.out.println("YES");
else
System.out.println("NO");
}
}
private static boolean isValidParentheses(String s) {
Stack<Character> stack = new Stack<>();
for (char c : s.toCharArray()) {
if (c == '(') {
stack.push(c);
} else if (c == ')') {
if (stack.isEmpty()) {
return false;
}
stack.pop();
}
}
return stack.isEmpty();
}
}
- 스택 구현체
- new Stack<>();
- String을 String 배열로 만들기
- String.split("")
- char도 스택에 넣을 수 있다
- Stack<Character>
'알고리즘 > 스택' 카테고리의 다른 글
[백준 6549] 히스토그램에서 가장 큰 직사각형 / 자바 / 스택 (0) | 2024.08.10 |
---|---|
[백준 17928] 오큰수 / 자바 / 스택 (0) | 2024.06.21 |
스택 문제 판별능력 키우기(with 백준 7문제) (1) | 2024.04.28 |
항해99 29일차 TIL( 에디터 / 백준) (1) | 2024.04.27 |
항해99 28일차 TIL( 쇠막대기 / 자바) (0) | 2024.04.26 |