Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
Tags
- 크레인인형뽑기게임
- 헤이로라
- Baekjoon
- Spring
- jvm
- 대충 만든 자판
- vue-cli
- springdoc
- 병합정렬
- 수들의 합
- 2178
- 1032
- 추억점수
- swagger3
- vue3
- 프로그래머스
- 용돈관리
- Spring Security
- 2751
- 스웨거
- 백준
- springboot
- call by value
- 6236
- getOrDefault
- 자바
- IoC container
- Di
- java
- docker
Archives
- Today
- Total
개발쿠키
[백준]괄호(java) 본문
https://www.acmicpc.net/problem/9012
9012번: 괄호
괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고
www.acmicpc.net
이 문제는 스택을 활용한 가아아아아아장 대표적인 문제다. 코드에 주석으로 각 라인이 어떤 것을 의미하는지 달아놨다,
public static String solution(String str) {
String result = "YES";
//스택 선언
Stack<Character> stack = new Stack<>();
for (char x : str.toCharArray()) {
//해당 문자일 경우 스택에 push
if (x == '(') stack.push(x);
else {
// ) 해당 문자일 때 스택이 비어있다면 이미 잘못된 문자
if (stack.isEmpty()) return "NO";
//스택에서 '(' 문자 pop
stack.pop();
}
}
//for문이 다 돌았는데 스택이 비어있지 않은 case
//()()( <- 이런 케이스들이라고 볼 수 있다.즉 앞에는 정상적으로 쌍을 이루었지만 마지막이 달라서 틀린 경우이다.
if (!stack.isEmpty()) return "NO";
return result;
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int size = in.nextInt();
String[] strArr = new String[size];
for (int i = 0; i < size; i++) {
strArr[i] = in.next();
}
for (int i = 0; i < size; i++) {
System.out.println(solution(strArr[i]));
}
}
'개발 > baekjoon&programmers' 카테고리의 다른 글
[프로그래머스]프로세스(java) (0) | 2023.06.30 |
---|---|
[프로그래머스]크레인 인형뽑기 게임(java) (0) | 2023.06.29 |
[프로그래머스]추억 점수(java) (0) | 2023.06.28 |
[프로그래머스]의상(java) (0) | 2023.06.28 |
[프로그래머스]포켓몬(java) (0) | 2023.06.28 |