728x90
반응형
문제
설계
두가지 방법이 있다. 스택을 사용해서 푸는 방법과, 그냥 스택의 개념만 이용해서 푸는 방법.
스택을 사용해서 풀어보려고했는데 pop했을 때 오류가 나서 스택 개념만 이용한 cnt 변수 선언으로 풀었다..
다른 스택을 이용한 코드를 보니 한번에 이해되긴 했다만, 뭔가 찝찝했다..
코드
package java_practice;
import java.io.IOException;
import java.util.Scanner;
public class boj_9012 {
public static void main(String[] args) throws IOException {
Scanner sc = new Scanner(System.in);
int t = sc.nextInt();
while (t-- > 0) { //테스트 케이스만큼 반복
String str = sc.next(); // 읽을 문자열
int cnt = 0; // 이 카운트가 0이면 YES, 아니라면 NO를 출력
for (int i = 0; i < str.length(); i++) { //문자열 길이만큼 i 반복해서 최종 cnt값을 계산하는구간
if (str.charAt(i) == '(') {
cnt++;
} else {
cnt--;
}
if (cnt < 0) { //만약 계산도중 0 미만이 되면 바로 break;
break;
}
}
if (cnt == 0)
System.out.println("YES");
else
System.out.println("NO");
}
sc.close();
}
}
근데 궁금한점이.. BufferedWirter를 사용해서 bw.write("NO") 라고 하면 출력이안됐다;; 왜인지 이유를 찾아봤다.
BufferedWriter는 반드시 flush()를 해줘야한단다.. 참고하자
결과
728x90
반응형
'PS, 언어 공부 > 알고리즘 문제풀이' 카테고리의 다른 글
[C++] 백준 온라인 저지 2292 (0) | 2020.09.09 |
---|---|
[C++] 백준 온라인 저지 1712 (0) | 2020.09.08 |
[JAVA] 백준 온라인저지 9093 (0) | 2020.06.25 |
[JAVA] 백준 온라인 저지 10828 (0) | 2020.06.25 |
[C++] 백준 온라인 저지 10992 (0) | 2020.05.16 |