csct3434
[level 2] 괄호 회전하기 - 76502 본문
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
import java.util.HashMap;
import java.util.Stack;
class Solution {
private final HashMap<Character, Integer> map = new HashMap<>();
public int solution(String s) {
int answer = 0;
map.put('(', 1);
map.put('{', 2);
map.put('[', 3);
map.put(')', -1);
map.put('}', -2);
map.put(']', -3);
StringBuilder stringBuilder = new StringBuilder(s);
for (int x = 0; x < s.length(); x++) {
stringBuilder.append(stringBuilder.charAt(0));
stringBuilder.deleteCharAt(0);
if (check(stringBuilder.toString())) {
answer++;
}
;
}
return answer;
}
boolean check(String s) {
Stack<Integer> stack = new Stack<>();
for (char c : s.toCharArray()) {
Integer value = map.get(c);
if (value > 0) {
stack.push(value);
continue;
}
if (!stack.isEmpty() && stack.peek() + value == 0) {
stack.pop();
} else {
return false;
}
}
return stack.isEmpty();
}
}
'프로그래머스' 카테고리의 다른 글
[level 2] 2개 이하로 다른 비트 - 77885 (0) | 2024.02.29 |
---|---|
[level 2] 행렬 테두리 회전하기 - 77485 (0) | 2024.02.29 |
[level 2] 메뉴 리뉴얼 - 72411 (0) | 2024.02.29 |
[level 2] 이진 변환 반복하기 - 70129 (0) | 2024.02.29 |
[level 2] 쿼드압축 후 개수 세기 - 68936 (0) | 2024.02.29 |