반응형
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<Character> 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점 나온 경우는 처음이었다
기분 좋음
반응형
'개발 > 알고리즘' 카테고리의 다른 글
Programmers - 오픈채팅방 (0) | 2021.12.25 |
---|---|
Programmers - [1차] 다트 게임 (0) | 2021.11.19 |
위클리 챌린지 - 최소직사각형 (Java, Javascript) (0) | 2021.11.18 |
Programmers - 크레인 인형뽑기 게임 (0) | 2021.09.09 |
Programmers - 위클리 4주차 (0) | 2021.09.06 |