티스토리 뷰
1) 생각
괄호가 올바로 짝지어지면 1 그렇지 않으면 0을 출력하라.
처음 생각
한 바퀴를 쭉 돌면서 괄호를 시작하는 경우인 "(,{,[,<" 일 경우에는 해당 배열을 +1 괄호를 닫는 경우인 "),},],>"일 경우에는 해당 배열을 -1 해주어 마지막에 음의 값을 가지고 있는 배열이 있을 경우는 0을 그렇지 않으면 1을 출력하였다.
다음 생각
주어진 문자열에서 하나의 괄호만 잘못 되었어도 0을 출력해야 한다. 따라서 -1을 하기전 해당 배열이 0이라면 바로 반복문을 종료하였다.
2) 방안
1) switch 문을 사용해서 코드가 길어져서 solve() 메소드로 따로 빼내어 처리를 해주었다.
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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | import java.io.IOException; import java.util.Scanner; public class Solution { static StringBuilder sb; public static void main(String[] args) throws IOException { Scanner sc = new Scanner(System.in); for(int i=1;i<=10;i++) { int n = sc.nextInt(); String t = sc.next(); solve(n,t); } } private static int solve(int n,String t) { int[] arr = new int[4]; for(int j=0;j<n;j++) { switch(t.charAt(j)) { case '(': arr[0]++; break; case ')': if(arr[0]--==0) return 0; break; case '[': arr[1]++; break; case ']': if(arr[1]--==0) return 0; break; case '{': arr[2]++; break; case '}': if(arr[2]--==0) return 0; break; case '<': arr[3]++; break; case '>': if(arr[3]--==0) return 0; break; } } return 1; } } | cs |
'알고리즘 > SW Expert' 카테고리의 다른 글
[SW Expert] 4008. [모의 SW 역량테스트] 숫자 만들기 (0) | 2018.08.31 |
---|---|
[SW Expert] 1873. 상호의 배틀필드 (0) | 2018.08.31 |
[SW Expert] 1227. [S/W 문제해결 기본] 7일차 - 미로2 (0) | 2018.08.29 |
[SW Expert] 1226. [S/W 문제해결 기본] 7일차 - 미로1 (0) | 2018.08.29 |
[SW Expert] 2817. 부분 수열의 합 (0) | 2018.08.28 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday