728x90
๋ฐ์ํ
๐ ๋ฌธ์
์ ๋ ฅ๋ ๋ฌธ์์ด์์ ์๊ดํธ ( ) ์ฌ์ด์ ์กด์ฌํ๋ ๋ชจ๋ ๋ฌธ์๋ฅผ ์ ๊ฑฐํ๊ณ ๋จ์ ๋ฌธ์๋ง ์ถ๋ ฅํ๋ ๋ฌธ์ ์ด๋ค.
๐ง๐ป๐ป ๋์ ํ์ด ๋ฐฉ๋ฒ
- for..of ๋ฌธ์ผ๋ก ๋ฐฐ์ด์ ๋ชจ๋ ์์๋ฅผ ์ฐจ๋ก๋๋ก ๋๋ฉด์ '('๊ฐ ๋์ค๋ฉด push() ๋ฉ์๋๋ฅผ ์ฌ์ฉํด ๋ฐฐ์ด์ ์์๋ฅผ ์ฝ์ ํ๋ค.
- ')'๊ฐ ๋์ค๋ฉด pop() ๋ฉ์๋๋ฅผ ์ฌ์ฉํด ๋ฐฐ์ด์์ ์์๋ฅผ ๊บผ๋ธ๋ค.
- ๋ฌธ์๊ฐ ๋์ค๋ฉด ๋ฐฐ์ด์ ๊ธธ์ด๋ฅผ ํ์ธํ๊ณ , ๋ฐฐ์ด์ ๊ธธ์ด๊ฐ 0์ด๋ฉด ๊ดํธ ์ฌ์ด์ ์๋ค๋ ๊ฒ์ด๋ฏ๋ก answer ๋ณ์์ ๋ฌธ์๋ฅผ ๋์ ์ํจ๋ค.
๐จ๐ผ๐ซ ๊ฐ์ฌ๋ ํ์ด ๋ฐฉ๋ฒ
pop() ๋ฉ์๋๋ฅผ ์ฌ์ฉํด ๋ฐฐ์ด์์ ์์๋ฅผ ๊บผ๋ด๋ฉด ๊บผ๋ธ ์์๋ฅผ ๋ฆฌํดํ๋คโ
- for ๋ฌธ์ ๋๋ฉด์ ')'๊ฐ ๋์ค๋ฉด while ๋ฌธ์ ์ฌ์ฉํด ์ง๊ฟ์ธ'('์ด ๋์ฌ ๋๊น์ง ๋ฐฐ์ด์์ ์์๋ฅผ ๊บผ๋ธ๋ค.
- ')'๊ฐ ์๋๋ผ๋ฉด push() ๋ฉ์๋๋ฅผ ์ฌ์ฉํด ์์๋ฅผ ์ฝ์ ํ๋ค.
- ๋ฐฐ์ด์ ๋จ์์๋ ๊ฐ๋ค์ join('') ๋ฉ์๋๋ฅผ ์ฌ์ฉํด ๋ฌธ์์ด๋ก ๋ณํํ๋ค.
๐ ํ์ด
// ๋์ ํ์ด ๋ฐฉ๋ฒ
function solution(s) {
let answer = '';
const stack = [];
for (let x of s) {
if (x === '(') stack.push(x);
else if (x === ')') {
stack.pop();
} else {
if (stack.length === 0) answer += x;
}
}
return answer;
}
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));
'Algorithm > ์ธํ๋ฐ(inflearn)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JavaScript/section 6] 04 - ํ์์ ์ฐ์ฐ(postfix) (0) | 2022.09.26 |
---|---|
[JavaScript/section 6] 03 - ํฌ๋ ์ธ ์ธํ๋ฝ๊ธฐ(์นด์นด์ค ๊ธฐ์ถ) (0) | 2022.09.25 |
[JavaScript/section 6] 01 - ์ฌ๋ฐ๋ฅธ ๊ดํธ (0) | 2022.09.23 |
[JavaScript/section 5] 08 - ๋ชจ๋ ์๋๊ทธ๋จ ์ฐพ๊ธฐ (0) | 2022.09.22 |
[JavaScript/section 5] 07 - ์๋๊ทธ๋จ (0) | 2022.09.21 |