ํฐ์คํ ๋ฆฌ ๋ทฐ
๋ฌธ์
์ ๋ ฅ๋ ๋ฌธ์์ด์์ ์๊ดํธ () ์ฌ์ด์ ์กด์ฌํ๋ ๋ชจ๋ ๋ฌธ์๋ฅผ ์ ๊ฑฐํ๊ณ ๋จ์ ๋ฌธ์๋ง ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ธ์.
๋ฌธ์ ํ์ด
๋ฌธ์์ด์ ๊ฐ ๋ฌธ์๋ค์ ์ํ ๋ฐ ์ฐธ์กฐํ ๋, ์ฌ๋ ๊ดํธ์ ๋ฌธ์์ผ ๊ฒฝ์ฐ์๋ ์คํ์ ๊ณ์ Push(์ ์ฅ)ํด์ค๋ค.
๋ง์ฝ์ ํด๋น ๋ฌธ์๊ฐ ๋ซ๋ ๊ดํธ์ผ ๊ฒฝ์ฐ์๋ ์คํ์ ์ ์ฅํ๋ ์ธ๋ฑ์ค ์์ ์ค ๊ฐ์ฅ ์ต๊ทผ์ ์ ์ฌ ๋(์คํ ์ ๊ฐ์ฅ ์์์ ์ ์ฅ) ์ฌ๋ ๊ดํธ๊ฐ ๋์ฌ๋๊น์ง ์ ์ฅํด๋์๋ ๋ฌธ์ ๋ฐ์ดํฐ๋ค์ ํ๋์ฉ Pop(์ญ์ )ํด์ค๋ค.
์ฝ๋
function solution(s) {
let answer = [];
for(let i = 0; i < s.length; i++) {
answer.push(s[i]);
if(s[i] === ")") {
for(let j = answer.length - 1; j >= 0; j--) { //์คํ์ ๋ค์์๋ถํฐ ์ฐธ์กฐํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์ญ์์ผ๋ก ๋ฐ๋ณต๋ฌธ ์คํ
if(answer[j] === "(") {
answer.pop();
break;
} else answer.pop();
}
}
}
return answer.join('');
}
let str = "(A(BC)D)EF(G(H)(IJ)K)LM(N)";
console.log(solution(str));
function solution(s){
let answer;
let stack=[];
for(let x of s){
if(x===')'){
while(stack.pop()!=='(');
}
else stack.push(x);
}
answer=stack.join('');
return answer;
}
let str="(A(BC)D)EF(G(H)(IJ)K)LM(N)";
console.log(solution(str));
'์๊ณ ๋ฆฌ์ฆ > ํ๊ทธ ๋ณ ํ์ด' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ]๊ณต์ฃผ ๊ตฌํ๊ธฐ (0) | 2021.07.15 |
---|---|
ํ์์ ์ฐ์ฐ(postfix) (0) | 2021.07.13 |
[์คํ]์ฌ๋ฐ๋ฅธ ๊ดํธ (0) | 2021.07.10 |
๋ชจ๋ ์๋๊ทธ๋จ ์ฐพ๊ธฐ (0) | 2021.07.09 |
[ํด์ฌ]์๋๊ทธ๋จ (0) | 2021.07.08 |
๋๊ธ