![[SWEA] 1218 괄호짝찾기 - JAVA [SWEA] 1218 괄호짝찾기 - JAVA](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
1. 문제
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!...
swexpertacademy.com
2. 풀이
import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.HashMap; import java.util.Map; import java.util.Stack; public class D4_1218_SW문제해결기본4일차_괄호짝짓기 { public static void main(String[] args) throws Exception { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); Stack<Character> stack; StringBuilder sb = new StringBuilder(); String pre = "([{<"; String post = ")]}>"; for (int tc = 1; tc <= 10; tc++) { sb.append("#").append(tc).append(" "); int len = Integer.parseInt(in.readLine()); String line = in.readLine(); stack = new Stack<>(); for (int i = 0; i < len; i++) { char ch = line.charAt(i); if (pre.indexOf(ch) >= 0) stack.push(ch); else if (stack.empty()) { stack.push('*'); // 체크위해서 넣어둠 break; } else if (pre.indexOf(stack.peek()) == post.indexOf(ch)) stack.pop(); else break; } if (stack.empty()) sb.append("1\n"); else sb.append("0\n"); } System.out.print(sb); } }
String의 indexOf를 활용해 현재 ch가 pre String에 포함된다면 스택에 push한다. 포함되지 않을 때의 리턴값이 -1임을 이용했다.
pre에 포함되지 않고 스택이 비어있다면 짝이 맞지 않는 입력값이므로 반복을 그만둔다.
peek의 pre인덱스값과 ch의 post인덱스값이 같아야만 pop시킨다.
그 외의 경우도 짝이 맞지 않는 입력값이므로 반복을 그만둔다.
이 문제들과 비슷하다.
2022.02.05 - [알고리즘/BOJ] - [BOJ] 9012 괄호 - JAVA
[BOJ] 9012 괄호 - JAVA
1. 풀이 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Stack; public class BOJ_9012_괄호 { public static void main(String[] args) thro.....
january-diary.tistory.com
2022.02.05 - [알고리즘/BOJ] - [BOJ] 4949 균형잡힌 세상 - JAVA
[BOJ] 4949 균형잡힌 세상 - JAVA
1. 풀이 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Stack; public class BOJ_4949_균형잡힌세상 { public static void main(String[] ar.....
january-diary.tistory.com
3. 결과
![[SWEA] 1218 괄호짝찾기 - JAVA - 3. 결과 [SWEA] 1218 괄호짝찾기 - JAVA - 3. 결과](http://t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png)
if문 여러개로 좀 더럽게 풀었다가 String indexOf 방식을 알게되었다. 시간은 좀 느려졌지만 코드가 짧아지고 가독성이 좋아져서 만족스럽다!
'코딩테스트 > SWEA' 카테고리의 다른 글
[SWEA] 1224 계산기3 - JAVA (0) | 2022.02.09 |
---|---|
[SWEA] 1223 계산기2 - JAVA (0) | 2022.02.09 |
[SWEA] 1861 정사각형 방 - JAVA (0) | 2022.02.09 |
[SWEA] 3499 퍼펙트셔플 (0) | 2022.02.09 |
[SWEA] 5215 햄버거 다이어트 - JAVA (0) | 2022.02.07 |
댓글