//GitHub https://github.com/vellimole0621
백준 9012번 : 괄호
( 문제 - https://www.acmicpc.net/problem/9012 )
문제 설명 : 숫자 T을 입력받아서, T개의 괄호로 구성된 문자열을 각각, 올바른 괄호 문자열인지 검사 후. 올바른 경우 'YES' 아닌 경우 'NO'를 출력한다.
풀이 : T 입력 받음 >> for문, T 만큼 반복해서 문자열 입력 >> 괄호 개수 중간 저장 변수(temp) 초기화 >> 괄호가 '('이면 temp 늘리고 ')'이면 temp 감소 >> 검사 중, temp가 0에서 ')' 발견시 NO 출력, temp는 -1로 저장 반복문 break 탈출 >> 검사 끝난 뒤, 괄호 중간 값 저장 변수 temp가 0이 아니거나, -1인 경우 NO 출력. 아니면 'YES' 출력
// 9012번 괄호
package S2209;
import java.util.*;
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
// T 입력 받음
int T = sc.nextInt();
sc.nextLine();
// T 만큼 반복해서 문자열 입력
for(int i = 0; i < T; i++){
String A = sc.nextLine();
char[] AC = A.toCharArray();
// 괄호 개수 중간 저장 변수 초기화
int temp = 0;
// 괄호가 '('이면 temp 늘리고 ')'이면 temp 감소
// 검사 중, temp가 0에서 ')' 발견시 NO 출력, temp는 -1로 저장 반복문 break 탈출
for(int j =0; j < A.length(); j++){
if(AC[j] == '('){
temp++;
}else{
if(temp == 0){
System.out.println("NO");
temp = -1;
break;
}
temp--;
}
}
// 검사 끝난 뒤, 괄호 중간 값 저장 변수 temp가 0이 아니거나, -1인 경우 NO 출력. 아니면 'YES' 출력
if((temp != 0) && (temp != -1)){
System.out.println("NO");
}else if(temp == 0){
System.out.println("YES");
}
}
sc.close();
}
}
'프로그래밍 > Java' 카테고리의 다른 글
[자바 JAVA/알고리즘] 백준 1236번 : 성 지키기 (0) | 2022.09.03 |
---|---|
[자바 JAVA/알고리즘] 백준 1259번 : 팰린드롬수 (0) | 2022.08.31 |
[자바 JAVA/알고리즘] 백준 1065번 : 한수 (0) | 2022.08.23 |
[자바 JAVA/알고리즘] 백준 10773번 : 제로 (0) | 2022.08.22 |
[자바 JAVA/알고리즘] 백준 1978번 : 소수 찾기 (0) | 2022.08.22 |