목차
https://www.acmicpc.net/problem/9012
9012번: 괄호
괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고
www.acmicpc.net
/**
* 1. 올바른 괄호열 찾기
*
* 2. stack을 통한 구현
*
* 3. t개의 테스트 데이터를 올바른 괄호열인지 "YES", "NO" 반환
*
*/
import java.io.*;
import java.util.Stack;
import java.util.StringTokenizer;
public class Test {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int t = Integer.parseInt(br.readLine());
for(int tc = 0; tc < t; tc ++){
String str = br.readLine();
if(check(str)){
bw.write("YES\n");
}else{
bw.write("NO\n");
}
}
bw.flush();
bw.close();
}
// 괄호열이 올바른지 체크하는 함수
public static boolean check(String str){
Stack<Character> stack = new Stack<>();
for(int i = 0; i < str.length(); i++){
char c = str.charAt(i);
if(c == '('){
stack.push(c);
}else{
if(stack.isEmpty() || stack.peek() != '('){
return false;
}
stack.pop();
}
}
return stack.size() > 0 ? false : true;
}
}
스택 공부하기 좋은 문제들
https://programmers.co.kr/learn/courses/30/lessons/12973
코딩테스트 연습 - 짝지어 제거하기
짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙
programmers.co.kr
https://programmers.co.kr/learn/courses/30/lessons/76502
코딩테스트 연습 - 괄호 회전하기
programmers.co.kr
https://www.acmicpc.net/problem/1874
1874번: 스택 수열
1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다.
www.acmicpc.net
'Algorithm > 백준풀이' 카테고리의 다른 글
[알고리즘 문제풀이] 백준 2613 숫자구슬 (JAVA코드) (0) | 2022.03.16 |
---|---|
[알고리즘 문제풀이] 백준 10845 큐 (JAVA코드) (0) | 2022.02.27 |
[알고리즘 문제풀이] 백준 10828 스택 (JAVA코드) (0) | 2022.02.27 |
[알고리즘 문제풀이] 백준 - N과M(2) / JAVA(자바) (0) | 2022.02.06 |
[알고리즘 문제풀이] 백준 1065 한수 / JAVA (0) | 2022.01.30 |
댓글