반응형
1. 문제
https://school.programmers.co.kr/learn/courses/30/lessons/76502
2. 코드
function solution(s) {
let cnt = 0;
// 회전안한 상태의 s
isRight(s) ? cnt++ : null;
let newS = s.slice();
for(let i=1;i<s.length;i++){
// 한 칸씩 왼쪽으로 회전
newS = newS.slice(1) + newS[0];
isRight(newS) ? cnt++ : null;
}
return cnt;
}
// 문자열의 괄호 순서가 맞는지 확인하는 함수
function isRight(str){
let stack = [];
if(str[0] === ")" || str[0] === "]" || str[0] === "}") return false;
for(let i=0;i<str.length;i++){
if(str[i] === "(" || str[i] === "[" || str[i] === "{") stack.push(str[i]);
else if(str[i]===")" && stack[stack.length-1]==="(" || str[i]==="}"
&& stack[stack.length-1]==="{" || str[i]==="]"
&& stack[stack.length-1]==="[") stack.pop();
}
return stack.length === 0 ? true : false;
}
반응형
'프로그래머스 > 구현' 카테고리의 다른 글
[문자열] 프로그래머스 '튜플' - js (0) | 2023.03.30 |
---|---|
[행렬] 프로그래머스 '행렬의 곱셈' - js (0) | 2023.03.29 |
[구현] 프로그래머스 'N개의 최소공배수' - js (0) | 2023.03.27 |
[일반] 프로그래머스 '점프와 순간 이동' - js (0) | 2023.03.27 |
[구현] 프로그래머스 '예상 대진표' - js (0) | 2023.03.17 |