괄호 회전하기
코딩테스트 연습 - 괄호 회전하기 | 프로그래머스 스쿨
문제
문제설명
다음 규칙을 지키는 문자열을 올바른 괄호 문자열이라고 정의합니다.
대괄호, 중괄호, 그리고 소괄호로 이루어진 문자열 s가 매개변수로 주어집니다. 이 s를 왼쪽으로 x (0 ≤ x < (s의 길이)) 칸만큼 회전시켰을 때 s가 올바른 괄호 문자열이 되게 하는 x의 개수를 return 하도록 solution 함수를 완성해주세요.
제한사항
• s의 길이는 1 이상 1,000 이하입니다.
입출력 예
| s | result |
|---|---|
| "[](){}" | 3 |
| "}]()[{" | 2 |
| "[)(]" | 0 |
| "}}}" | 0 |
입출력 예 설명 #1
| x | s를 왼쪽으로 x칸만큼 회전 | 올바른 괄호 문자열? |
|---|---|---|
| 0 | "[](){}" | O |
| 1 | "](){}[" | X |
| 2 | "(){}[]" | O |
| 3 | "){}[](" | X |
| 4 | "{}[]()" | O |
| 5 | "}[](){" | X |
접근 방식 및 나의 해답
s의 길이만큼 반복문을 진행하며 s.splice(i,0)으로 앞부분을 제거하고 s의 뒷부분에 s.concat()을 이용해 추가,
괄호의 짝이 맞는지 판별하는 함수를 만들어서 반복문 내에서 호출한 뒤 return값에 따라 answer의 값을 증가