## 🌟 문제 [코딩테스트 연습 - 괄호 회전하기 \| 프로그래머스 스쿨](https://school.programmers.co.kr/learn/courses/30/lessons/76502) ## 🌟 풀이 s의 최대 길이가 1000으로 그렇게 크지 않아서 문제 그대로를 구현하면 되는 문제였다. 우선 s의 길이만큼 회전을 해 줘야 하니 s를 이어붙여서 회전 결과를 미리 만들어주었다. ```javascript const sList = [...s, ...s]; ``` 그 다음에는 s 길이만큼의 범위를 오른쪽으로 옮겨가면서 (offset을 이용하는 for loop) 스택을 이용한 괄호 짝 맞추기를 해 줬다. 괄호 짝 맞추기 방법은 [[Lv1. 올바른 괄호]] 와 동일하게 여는 괄호는 스택에 넣어주고, 닫는 괄호는 스택의 top과 비교해주는 방법! ```javascript function solution(s) { let answer = 0; const sList = [...s, ...s]; for (let start = 0; start < s.length; start++) { const stack = []; let isValid = true; for (let offset = 0; offset < s.length; offset++) { const c = sList[start + offset]; if (c === '(' || c === '[' || c === '{') { stack.push(c); } else { const top = stack.pop(); if (!top) { isValid = false; break; } if (top === '(' && c === ')') continue; if (top === '[' && c === ']') continue; if (top === '{' && c === '}') continue; isValid = false; break; } } if (isValid && stack.length === 0) answer++; } return answer; } ```