Jieunny์ ๋ธ๋ก๊ทธ
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ๊ดํธ ํ์ ํ๊ธฐ ๋ณธ๋ฌธ
๐ ๋ฌธ์
๋ค์ ๊ท์น์ ์งํค๋ ๋ฌธ์์ด์ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด์ด๋ผ๊ณ ์ ์ํฉ๋๋ค.
- (), [], {} ๋ ๋ชจ๋ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด์ ๋๋ค.
- ๋ง์ฝ A๊ฐ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด์ด๋ผ๋ฉด, (A), [A], {A} ๋ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด์ ๋๋ค. ์๋ฅผ ๋ค์ด, [] ๊ฐ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด์ด๋ฏ๋ก, ([]) ๋ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด์ ๋๋ค.
- ๋ง์ฝ A, B๊ฐ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด์ด๋ผ๋ฉด, AB ๋ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด์ ๋๋ค. ์๋ฅผ ๋ค์ด, {} ์ ([]) ๊ฐ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด์ด๋ฏ๋ก, {}([]) ๋ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด์ ๋๋ค.
๋๊ดํธ, ์ค๊ดํธ, ๊ทธ๋ฆฌ๊ณ ์๊ดํธ๋ก ์ด๋ฃจ์ด์ง ๋ฌธ์์ด s๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. ์ด s๋ฅผ ์ผ์ชฝ์ผ๋ก x (0 ≤ x < (s์ ๊ธธ์ด)) ์นธ๋งํผ ํ์ ์์ผฐ์ ๋ s๊ฐ ์ฌ๋ฐ๋ฅธ ๊ดํธ ๋ฌธ์์ด์ด ๋๊ฒ ํ๋ x์ ๊ฐ์๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ์ฌํญ
- s์ ๊ธธ์ด๋ 1 ์ด์ 1,000 ์ดํ์ ๋๋ค.
๐ก ์์ด๋์ด
์๊ฐ์ ์ค์ด๋ ค๊ณ ๊ดํธ ๊ฐ์๋ฅผ ์ธ์ ์ฌ๋๊ฑฐ๋ฉด +1, ๋ซ๋๊ฑฐ๋ฉด -1 ํ๋ ๋ฐฉ๋ฒ์ ๊ตฌํํ๋๋ฐ, ์ด ๋ฐฉ๋ฒ์ ๊ดํธ ์ข ๋ฅ๊ฐ ํ๋ ์ผ ๋๋ง ํ ์ ์๋ค.
๊ทธ๋์ ๋ค์ ์คํ์ผ๋ก ๊ตฌํํ๋ค.
โ๏ธ ํ์ด
function solution(s) {
var answer = -1;
let result = 0;
let sArr = s.split('');
if(count(sArr) === 1) result ++;
let i = 1;
while(i < sArr.length){
if(count(moveLeft(sArr))===1){
result++;
}
i++;
}
answer = result;
return answer;
}
function moveLeft(sArr) { // ๋ฐฐ์ด ์ผ์ชฝ์ผ๋ก ํ์ ์ํค๋ ํจ์
let i = 0;
while(i <= sArr.length){
sArr.push(sArr.shift());
// ๋งจ์์ ์๋๊ฑฐ ๋นผ์ ๋งจ ๋ค์ ๋ฃ์ด์ฃผ๋ ๊ฑธ ๋ฐฐ์ด ๊ธธ์ด๋งํผ ๋ฐ๋ณตํ๋ฉด ์ผ์ชฝ์ผ๋ก ํ์นธ ๋ก๊ธด ๊ฒ ์ฒ๋ผ ๋๋ค.
i++;
}
return sArr;
}
function count(sArr) { // ๊ดํธ ํ์ธํ๋ ํจ์
let stk=[];
for(let i=0; i<sArr.length; i++){
stk.push(sArr[i]);
if(stk.length >= 2){
if((stk[stk.length-2] === '(' && stk[stk.length-1] ===')') || (stk[stk.length-2] === '{' && stk[stk.length-1] ==='}') || (stk[stk.length-2] === '[' && stk[stk.length-1] ===']')){
stk.pop();
stk.pop();
}
}
}
if(stk.length === 0) return 1;
else return 0;
}
'Study > Coding Test' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ํ๋ ฌ์ ๊ณฑ์ (0) | 2023.02.27 |
---|---|
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ์บ์(LRU ์๊ณ ๋ฆฌ์ฆ) (0) | 2023.02.24 |
[JS] ํ๋ก๊ทธ๋๋จธ์ค - H-index (0) | 2023.02.22 |
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ๋ฉ๋ฆฌ๋ฐ๊ธฐ (0) | 2023.02.21 |
[JS] ํ๋ก๊ทธ๋๋จธ์ค - ์ ํ์ ์๊ฐ์ด๋ (0) | 2023.02.21 |