728x90
반응형
SMALL

이 문제는 이름을 잘못 지었다. 헷갈리게 괄호회전하기가 뭐냐, 괄호 밀기도 아니고 - ..-
여튼 괄호 관련한 문제는 학부생때 stack 을 이용하도록 습관화 돼있어서
stack으로 풀었음
1. 내가 푼 풀이
function solution(s) {
let count =0;
const arr = s.split("");
for(let i=0;i<arr.length;i++){
const newArr = [...arr.slice(i), ...arr.slice(0,i)];
if(isAlight(newArr)){
count +=1;
}
}
return count;
}
const isAlight = (arr)=>{
const closeBrackets = [')',']','}'];
const openBrackets = ['(','[','{'];
const stack =[];
for(let i=0;i<arr.length;i++){
const char = arr[i]
if(openBrackets.indexOf(char)!==-1){
stack.push(char);
}else{
const top = stack.pop();
if(!top) return false;
const openIndex = openBrackets.indexOf(top);
const closeIndex = closeBrackets.indexOf(char);
if(openIndex!==closeIndex){
return false;
}
}
}
if(stack.length>0) return false;
return true;
}
2. 다른사람 풀이도 넣으려고햇으나, 길어서 그냥 패스.
닫는괄호와 여는괄호를 매칭시키는 부분을 다르게 구현한 듯 하다.
사실 나처럼 배열의 indexOf를 써도되고, 객체를 쓰신분도 있다.
코드 길이면에서는 객체가 훨 나은듯.
다른 함수를 쓰지않고 그냥 solution안에서만 해결한 분도 있는데, 읽기 귀찮아서 패스해본다..
LIST
'CS > 알고리즘' 카테고리의 다른 글
| [해시] PGS lv2. 전화번호 목록 (0) | 2025.09.10 |
|---|---|
| [월간 코드 챌린지 시즌3] PGS lv2. n^2 배열자르기 (0) | 2025.09.08 |
| [완전탐색] PGS lv2. 카펫 (0) | 2025.09.07 |
| [미완]알고리즘 및 자료구조 개념 복습 (자코스테 자료 참고) (0) | 2024.11.13 |
| [백트래킹] PGS 여행경로 (0) | 2024.05.20 |