[BOJ] 9012 괄호
🔗 Problem
https://www.acmicpc.net/problem/9012
👩💻 Code
package baekjoon;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
// 괄호
public class BJ9012 {
static int n;
static String[] arr;
static int cnt;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
n = Integer.parseInt(br.readLine());
for(int i = 0; i < n; i++) {
cnt = 0;
arr = br.readLine().split("");
for(int j = 0; j < arr.length; j++) {
if(arr[j].equals("(")) cnt++; // 여는 괄호라면 cnt 증가
else { // 닫는 괄호라면 cnt 감소
cnt--;
if(cnt < 0) break;
}
}
if(cnt == 0) sb.append("YES\n"); // VPS라면 열고 닫는 횟수가 같기 때문에 최종적으로 cnt는 0이 되어야 한다.
else sb.append("NO\n");
}
System.out.println(sb.toString());
}
}
💡 Learned
package baekjoon;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
// 괄호
public class BJ9012 {
static int n;
static String[] arr;
static int cnt;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
n = Integer.parseInt(br.readLine());
for(int i = 0; i < n; i++) {
cnt = 0;
arr = br.readLine().split("");
for(int j = 0; j < arr.length; j++) {
if(arr[j].equals("(")) cnt++; // 여는 괄호라면 cnt 증가
else { // 닫는 괄호라면 cnt 감소
cnt--;
if(cnt < 0) break;
}
}
if(cnt == 0) sb.append("YES\n"); // VPS라면 열고 닫는 횟수가 같기 때문에 최종적으로 cnt는 0이 되어야 한다.
else sb.append("NO\n");
}
System.out.println(sb.toString());
}
}
아이디어
- Queue 사용할까 했는데 Queue 없이 구현할 수 있는 것을 캐치하였다.
해당 문제는 쉽게 풀었는데 원래 오늘 시뮬레이션과 구현
문제를 풀려고 했었는데 머리가 잘 안돌아가고 시간도 없어서 패쓰했다. 너무 알고리즘 문제만 풀었나 단순구현 문제가 더 어렵게 느껴진다😥 연습 좀 해야겠당
Author And Source
이 문제에 관하여([BOJ] 9012 괄호), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ssoyeong/BOJ-9012-괄호저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)