Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 순열 재귀
- 상속
- 서로소
- Interface
- java 내부 클래스
- 후위표기
- 재귀
- 알고리즘 그래프
- java lambda
- 자바
- 자바 조합 재귀
- jquery dom 계층 선택자
- inner class
- 조합 재귀
- 자바 재귀 조합
- 순열코드
- 재귀함수
- 자바스크립트 이벤트처리
- jquery 필터선택자
- jquery 속성선택자
- Java
- str to char array
- 알고리즘
- java Collections.sort()
- char to str
- 자바입출력
- parseInt()
- 자바스크립트 이벤트중지
- 자바 순열 코드
- jquery 이벤트 처리
Archives
- Today
- Total
유블로그
[Java] BOJ 4949 균형 잡힌 세상 백준 본문
[Java] BOJ 4949 균형 잡힌 세상 백준
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
public class BOJ_4949_균형잡힌세상 {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
while(true) {
String s = br.readLine();
if(s.charAt(0) == '.') break;
List<Integer> brac = new ArrayList<>();
int bigFront = 0, smallFront = 0;
boolean isPass = true;
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if(c == '[') {
brac.add(1);
bigFront++;
}
else if(c == '(') {
brac.add(2);
smallFront++;
}
else if(c == ']') {
if(bigFront == 0 || brac.get(brac.size()-1) != 1) {
isPass = false;
break;
}
brac.remove(brac.size()-1);
bigFront--;
}
else if(c == ')') {
if(smallFront == 0 || brac.get(brac.size()-1) != 2) {
isPass = false;
break;
}
brac.remove(brac.size()-1);
smallFront--;
}
}
if(bigFront > 0 || smallFront > 0) isPass = false;
if(isPass) System.out.println("yes");
else System.out.println("no");
} //while
}
}
직전 괄호가 대괄호인지 소괄호인지를 구분하기 위해 arrayList 를 썼다.
Stack 으로 해도 되겠지만 그냥 List 로 했다. ㅎ
[ 가 나오면 list 에 넣고 [ 개수를 +1 한다.
( 가 나오면 list 에 넣고 ( 개수를 +1 한다.
] 가 나오면 list 마지막에 [ 가 있는지 확인한다. [ 가 아니라면 no 를 출력한다.
혹은 [ 개수가 0 이어도 no 출력한다.
) 가 나오면 list 마지막에 ( 가 있는지 확인한다. ( 가 아니라면 no 를 출력한다.
혹은 ( 개수가 0 이어도 no 출력한다.
정상적으로 짝을 찾은 ] or ) 이라면 list에서 마지막 것만 지워주고 개수도 -1 해준다.
다 끝나고나서 [ 혹은 ( 이 아직 남아있다면 짝을 못찾았으니 no 를 출력한다.
그 외의 상황은 정상적으로 모든 괄호가 짝을 찾았으니 yes 출력하면 된다.
'알고리즘' 카테고리의 다른 글
[Java] BOJ 17609 회문 (0) | 2021.05.05 |
---|---|
[Java] BOJ 9935 문자열 폭발 (0) | 2021.05.04 |
[Java] BOJ 5430 AC 백준 (0) | 2021.05.02 |
[Java] BOJ 1541 잃어버린 괄호 (0) | 2021.04.30 |
[Java] BOJ 2212 센서 (0) | 2021.04.28 |