JAVA Developer Training
6. 9012번 괄호 ( java ) 본문
package com.example;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Stack;
public class training {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int a = Integer.parseInt(br.readLine());
while (a > 0) {
String string = br.readLine();
Stack<Character> stack = new Stack<>();
boolean end = false;
for (int i = 0; i < string.length(); i++) {
char c = string.charAt(i); // string을 문자열로 바꾸어 문자열의 각 문자마다 번호를 새겨준다
if (c == '(') { // 만약 들어간 문자열중 n번째의 문자가 '('일 경우
stack.push(c); // '(' 인 문자를 스택에 푸쉬 쌓아준다
} else { // 만약 '(' 가 아닐경우
if (!stack.empty()) {
stack.pop(); // 스택이 비어있지 않다면 최상단을 가져다 떼어낸다 pop
} else {
end = true; // '('가 아니고 스택이 비어있을때는 end의 값을 트루로 변경
break; // 반복문을 탈출한다
}
}
}
if (!stack.empty() || end) { // 반복문 탈출후 스택이 비어있지 않거나 == ((( 남아있을경우
System.out.println("NO"); // 혹은 end값이 true가 아닐 경우 No를 불러낸다
} else {
System.out.println("YES"); // 그외의 경우 YES를 호출
}
a--; // 지정한 명령의 수가 줄어들어 0이될때 끝
}
}
}
결과는
'백준 알고리즘' 카테고리의 다른 글
8. 10845번 큐 (0) | 2021.09.06 |
---|---|
7. 1874번 스택 수열 (0) | 2021.09.06 |
5. 9093번 단어 뒤집기 ( java ) (0) | 2021.09.02 |
4. 10828번 스택 ( java ) (0) | 2021.08.30 |
3. 2884번 알람시계 ( java ) (0) | 2021.08.30 |