728x90
๋ฐ์ํ
๐ 05 - ์ ๋ง๋๊ธฐ(์คํ)
์ ๋ง๋๊ธฐ์ ๋ ์ด์ ์ ๋ฐฐ์น๋ฅผ ๋ํ๋ด๋ ๊ดํธ ํํ์ด ์ฃผ์ด์ก์ ๋, ์๋ ค์ง ์ ๋ง๋๊ธฐ ์กฐ๊ฐ์ ์ด ๊ฐ์๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ์ด๋ค.
์ ๋ง๋๊ธฐ๊ฐ ๋ ์ด์ ๋ฅผ ๋ง๋ ๋๋ง๋ค ๋ช ๊ฐ์ ์กฐ๊ฐ์ด ๋ฐ์ํ๋ค. ์ด๋ฌํ ์กฐ๊ฐ์ด ์๊ธธ๋๋ง๋ค ๋ฐ๊ตฌ๋์ ๋ฃ์ด์ค๋ค๋ผ๊ณ ์๊ฐํ๋ฉด ๋ฌธ์ ๋ฅผ ์ดํดํ๋๋ฐ ๋ง์ ๋์์ด ๋๋ค.
ํ์ด ๋ฐฉ๋ฒ
- for ๋ฌธ์ ๋๋ฉด์ '('๋ฅผ ๋ง๋๋ฉด ๋ฌด์กฐ๊ฑด ์คํ์ ๋ฃ๋๋ค.
- ')'๋ฅผ ๋ง๋๋ฉด pop() ํจ์๋ฅผ ์ด์ฉํด ์คํ์์ ์๋ฃ๋ฅผ ๊บผ๋ด๋๋ฐ, ์ฌ๊ธฐ์ s[i - 1]์ ๊ฐ์ด '('์ด๋ผ๋ฉด ์ฌ๋ ๊ดํธ์ ๋ซ๋ ๊ดํธ์ ์ธ์ ํ ์์ผ๋ก ๋ ์ด์ ์ ํด๋นํ๋ค. ์คํ์ ๊ธธ์ด๊ฐ ์ ๋ง๋๊ธฐ์ ๊ฐ์์ด๋ฏ๋ก ์คํ์ ๊ธธ์ด๋ฅผ answer ๋ณ์(๋ฐ๊ตฌ๋)์ ๋์ ์ํจ๋ค.
- s[i - 1]์ ๊ฐ์ด ')'์ด๋ผ๋ฉด ์ ๋ง๋๊ธฐ์ ์ค๋ฅธ์ชฝ ๋์ ๋ํ๋ด๋ฏ๋ก answer++์ ํด์ค๋ค. ์ ๋ง๋๊ธฐ์ ๋ง์ง๋ง ์กฐ๊ฐ์ ๋ฐ๊ตฌ๋์ ๋ฃ์ด์ฃผ๋ ๊ฒ๊ณผ ๊ฐ๋ค.
๐ ํ์ด
function solution(s) {
let answer = 0;
let stack = [];
for (let i = 0; i < s.length; i++) {
if (s[i] === '(') stack.push(s[i]);
else {
stack.pop();
if (s[i - 1] === '(') {
answer += stack.length;
} else {
answer++;
}
}
}
return answer;
}
let a = '(((()(()()))(())()))(()())';
console.log(solution(a));
'Algorithm > ์ธํ๋ฐ(inflearn)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JavaScript/section 6] 07 - ๊ต์ก๊ณผ์ ์ค๊ณ (0) | 2022.09.28 |
---|---|
[JavaScript/section 6] 06 - ๊ณต์ฃผ ๊ตฌํ๊ธฐ (0) | 2022.09.27 |
[JavaScript/section 6] 04 - ํ์์ ์ฐ์ฐ(postfix) (0) | 2022.09.26 |
[JavaScript/section 6] 03 - ํฌ๋ ์ธ ์ธํ๋ฝ๊ธฐ(์นด์นด์ค ๊ธฐ์ถ) (0) | 2022.09.25 |
[JavaScript/section 6] 02 - ๊ดํธ๋ฌธ์์ ๊ฑฐ (0) | 2022.09.23 |