๋ฌธ์ ๋งํฌ
์ ๊ทผ ๋ฐฉ๋ฒ
๋ฌธ์์ด s์ ๊ดํธ๋ฌธ์์ด์ด ์ฃผ์ด์ง๊ณ , s๋ฅผ ํ์ ํ๋ฉฐ ([0,1,2,3,4] => [1,2,3,4,0] => [2,3,4,0,1] ์ด๋ฐ์์ผ๋ก)
์ฌ๋ฐ๋ฅธ ๊ดํธ ๊ท์น์ ๋ง๋ s์ ๊ฐ์๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ์ด๋ค.
(์ฌ๋ฐ๋ฅธ ๊ดํธ ๊ท์น์ด๋ ์ด๋ฆผ๊ณผ ๋ซํ์ด ์ ๋๋ก ๋๊ฒ์ ์๋ฏธํ๋ค. "์ฌ๋ฐ๋ฅธ ๊ดํธ (), ({}), {[({})]}" )
์ฐ์ s๋ฅผ ํ์ ํ๋ ์ฝ๋๋ฅผ ๊ตฌํํ๊ณ ํ์ ํ s๋ง๋ค ์ฌ๋ฐ๋ฅธ ๊ดํธ์ธ์ง ํ๋จํ๋ ํจ์๋ฅผ ๊ตฌํํ์๋ค.
์ฌ๋ฐ๋ฅธ ๊ดํธ์ธ์ง ํ๋จํ๋ ํจ์๋ ์ฐ์ ์์ธ์ฒ๋ฆฌ๋ก },],)์ ํด๋นํ๋ rightBracket์ด ์ฌ ๊ฒฝ์ฐ๋ฅผ ์ ์ธํ๊ณ ,
๋ชจ๋ ๋ฌธ์์ด s๋ฅผ sArr์ ๋ด์ ๋ค (splice๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํ ๋ฐฐ์ดํ)
sArr์ ์ํํ๋ฉด์ sArr[0]์ด leftBracket์ ํฌํจ๋์๊ณ , leftBracket[i]์ rightBracket[i+1]์ด ๊ฐ์ ๊ฒฝ์ฐ,
์ด ๋์ ์ง์ฐ๊ณ ๋ค์ i๋ฅผ 0์ผ๋ก ๋๋๋ฆฌ๋ ์์ ์ ๋ฐ๋ณตํ๋ค.
(i ๋ฅผ -1๋ก ์ด๊ธฐํํ ์ด์ ๋ for๋ฌธ์ด ๋๋๋ฉด ํ์ ์ฆ๊ฐ ์ฐ์ฐ์๋ฅผ ํตํด i++์ด ์ด๋ค์ ธ์ i๊ฐ 0์ด ๋๊ธฐ ๋๋ฌธ์ด๋ค.)
๊ฒฐ๊ณผ์ ์ผ๋ก sArr์ ๋ชจ๋ ์์๊ฐ ์ฌ๋ผ์ง๋ฉด true๋ฅผ ๋ฐํํ๊ณ , ๋จ์์๋ ์์๊ฐ ์์ผ๋ฉด false๋ฅผ ๋ฐํํ๋ค.
correctBracket์ ์ค์ ๊ฒฐ๊ณผ๋ฅผ ์ดํด๋ณด๋ฉด๋ง์ฝ leftBracket[i]์ rightBracket[i+1]์ด ๊ฐ์ ๊ฒฝ์ฐ ์ด ๋์ spliceํ๊ณ , ๋ค์ ์ฒ์๋ถํฐ ๋ฐฐ์ด์ ํ์ํ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.
function solution(s) {
let count = 0;
for(let i = 0; i < s.length; i++){
s = s.slice(1) + s[0];
if(correctBracket(s)) count++;
}
return count;
}
const correctBracket = (s) => {
let leftBracket = ['{','[','('];
let rightBracket = ['}',']',')'];
let sArr = [];
if (rightBracket.includes(s[0])) return;
for(let i = 0; i < s.length; i++){
sArr.push(s[i]);
}
for(let i = 0; i < sArr.length - 1; i++){
if(leftBracket.includes(sArr[i]) && leftBracket.indexOf(sArr[i]) === rightBracket.indexOf(sArr[i+1])){
sArr.splice(i,2);
i = -1;
}
}
return sArr.length === 0 ? true : false;
}
'์ฝ๋ฉํ ์คํธ > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Javscript] [1์ฐจ] ๋น๋ฐ์ง๋ (17681) (0) | 2022.05.31 |
---|---|
[Javascript] ์ผ๊ฐ ๋ฌํฝ์ด (68645) (0) | 2022.05.29 |
[Javascript] ์ต์์ง์ฌ๊ฐํ (86491) (0) | 2022.05.27 |
[Javascript] ์นดํซ (42842) (0) | 2022.05.14 |
[Javascript] H-Index (42747) (0) | 2022.05.14 |