Programmers - 괄호 회전하기

Programmers - 괄호 회전하기

반응형

import java.util.*; class Solution { public int solution(String s) { int answer = 0; // 문자열 회전 코드 for(int i = 0; i < s.length() ; i++) { String movedStr = s.substring(i) + s.substring(0, i); if(checkStr(movedStr.toCharArray())) { answer += 1; } } return answer; } public boolean checkStr (char[] strArr) { // 첫 번째 글자가 ], ), } 경우 무조건 false if(strArr[0] == ']' || strArr[0] == ')' || strArr[0] == '}') { return false; } Stack chStack = new Stack<>(); for(char ch : strArr) { // [, (, { 경우 chStack에 삽입 if(ch == '[' || ch == '(' || ch == '{') { chStack.push(ch); } else { // ], ), } 경우 chStack size 여부 확인 if(!chStack.isEmpty()) { // 괄호 조합 String tempStr = String.valueOf(chStack.peek()) + String.valueOf(ch); if (tempStr.equals("[]") || tempStr.equals("()") || tempStr.equals("{}")) { chStack.pop(); } else { // 괄호 조합이 어긋날 경우 남은 글자를 조합해도 완전한 괄호를 가질 수 없음 return false; } } else { return false; } } } if(!chStack.isEmpty()) { return false; } return true; } }

프로그래머스 풀면서 9점 나온 경우는 처음이었다

기분 좋음

반응형

from http://namcoding.tistory.com/23 by ccl(S) rewrite - 2021-12-30 07:28:03