728x90
๋ฐ์ํ
๐ ๋ฌธ์
๊ดํธ๊ฐ ์ ๋ ฅ๋๊ณ ์ฌ๋ฐ๋ฅธ ๊ดํธ์ด๋ฉด "YES", ์ฌ๋ฐ๋ฅด์ง ์์ผ๋ฉด "NO"๋ฅผ ์ถ๋ ฅํ๋ ๋ฌธ์ ์ด๋ค.
(())() ์ด๊ฒ์ ๊ดํธ์ ์์ด ์ฌ๋ฐ๋ฅด๊ฒ ์์นํ๋ ๊ฑฐ์ง๋ง, (()()))์ ์ฌ๋ฐ๋ฅธ ๊ดํธ๊ฐ ์๋๋ค.
์ด ๋ฌธ์ ๋ ์๋ฃ๊ตฌ์กฐ ์ค ์คํ์ ํ์ฉํ๋ ๋ฌธ์ ์ด๋ค. JavaScript์์ ์คํ์ ๋ฐฐ์ด์ ์ด์ฉํด ๊ตฌํํ๋ฉด ๋๋ค.
์คํ ์๋ฃ๊ตฌ์กฐ๋ LIFO(Last In First Out) ๊ตฌ์กฐ๋ก ๋์ด ์์ผ๋ฉฐ, push(), pop() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฃ๋ฅผ ๋ฐ์ด ๋ฃ๊ณ ๊บผ๋ผ ์ ์๋ค. ํ๋ง๊ธ์ค ๊ณผ์๋ฅผ ์๊ฐํ๋ฉด ์ดํดํ๊ธฐ ์ฝ๋ค. ๋ง์ง๋ง์ ๋ฃ์ ๊ณผ์๋ฅผ ๊ฐ์ฅ ๋จผ์ ๋จน๊ฒ ๋๋ ๊ฒ๊ณผ ๊ฐ์ ์๋ฆฌ์ด๋ค.
๐จ๐ป๐ป ๋์ ํ์ด ๋ฐฉ๋ฒ
- for..of ๋ฌธ์ ์ฌ์ฉํด ๋ฐฐ์ด์ ์์๋ฅผ ์ฐจ๋ก๋๋ก ๋๋ฉฐ '('๋ฅผ ๋ง๋๊ฒ ๋๋ฉด push() ๋ฉ์๋๋ฅผ ์ฌ์ฉํด ์์๋ฅผ ์ฝ์ ํ๋ค.
- ')'๋ฅผ ๋ง๋๊ฒ ๋๋ฉด pop() ๋ฉ์๋๋ฅผ ์ฌ์ฉํด ๊บผ๋ด์ผ ํ๋ค. ์ด๋, ๋ฐฐ์ด์ ๊ธธ์ด๊ฐ 0์ด๋ผ๋ฉด ๊บผ๋ผ ์์๊ฐ ์๋ค๋ ๊ฒ์ด๋ฏ๋ก ''NO''๋ฅผ ๋ฆฌํดํ๋ค.
- ๋ง์ง๋ง์ผ๋ก ๋ฐฐ์ด์ ๋จ์ ์์๊ฐ ์๋ค๋ฉด ์ฌ๋ฐ๋ฅธ ๊ดํธ๊ฐ ์๋๋ฏ๋ก ''NO''๋ฅผ ๋ฆฌํดํ๊ณ ์๋ค๋ฉด ''YES''๋ฅผ ๋ฆฌํดํ๋ค.
๐ ํ์ด
function solution(s) {
let answer = 'YES';
const stack = [];
for (let x of s) {
if (x === '(') stack.push(x);
else {
if (stack.length === 0) return 'NO';
stack.pop();
}
}
// ์ต์ข
๊ฒ์ฌ
if (stack.length !== 0) return 'NO';
return answer;
}
let a = '(()(()))(())';
console.log(solution(a));
'Algorithm > ์ธํ๋ฐ(inflearn)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JavaScript/section 6] 03 - ํฌ๋ ์ธ ์ธํ๋ฝ๊ธฐ(์นด์นด์ค ๊ธฐ์ถ) (0) | 2022.09.25 |
---|---|
[JavaScript/section 6] 02 - ๊ดํธ๋ฌธ์์ ๊ฑฐ (0) | 2022.09.23 |
[JavaScript/section 5] 08 - ๋ชจ๋ ์๋๊ทธ๋จ ์ฐพ๊ธฐ (0) | 2022.09.22 |
[JavaScript/section 5] 07 - ์๋๊ทธ๋จ (0) | 2022.09.21 |
[JavaScript/section 5] 06 - ํ๊ธ ํ์ฅ (0) | 2022.09.21 |