코딩테스트/백준
[Java] 백준 - 9012번: 괄호 (Silver IV)
배똥회장
2022. 8. 29. 10:30
728x90
코딩 테스트 풀이 체크리스트 |
|
2시간 내에 풀었는가? | O |
본인의 실력으로 풀었는가? | O |
9012번: 괄호
괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고
www.acmicpc.net
import java.io.*;
import java.util.*;
public class Main {
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 n = Integer.parseInt(br.readLine());
for (int i = 0; i < n; i++) {
//한 줄씩 입력 받아와서 char 배열로 변환
char[] word = br.readLine().toCharArray();
//열린 괄호를 담기 위한 스택
Stack<Character> s = new Stack<>();
//for문 중간에 탈출을 했는지 체크할 boolean
boolean value = true;
for (int j = 0; j < word.length; j++) {
if (word[j] == '(') { //만약 열린 괄호라면 스택에 추가
s.add(word[j]);
} else { //닫힌 괄호라면
if (!s.isEmpty()) { //스택이 비어있지 않으면 스택에서 하나 꺼내기
s.pop();
} else { //비어있으면 올바른 문자열이 아니기 때문에 value 값 변경 후 탈출
value = false;
break;
}
}
}
//만약 s가 비어있고, value도 true면 올바른 문자열이라서 YES, 그렇지 않으면 NO 출력
bw.write((s.isEmpty() && value ? "YES" : "NO") + "\n");
}
bw.flush();
bw.close();
}
}
문제 | 결과 | 메모리 | 시간 | 코드 길이 |
9012 | 맞았습니다!! | 14408 KB | 136 ms | 778 B |
728x90