function solution(s) {
let n = s.length;
let sum = 0;
if (n % 2 === 1) {
return false;
} else {
s = s.split('').map((bracket) => (bracket === '(' ? 1 : -1));
for (let num of s) {
sum += num;
if (sum < 0) {
return false;
}
}
let answer = sum === 0 ? true : false;
return answer;
}
}
ํ๊ธฐ ์ ์๊ฐ
- s์ ๊ธธ์ด๊ฐ ํ์์ธ ๊ฒฝ์ฐ๋ ๋ฌด์กฐ๊ฑด false(๊ดํธ์ ์ง์ด ๋ง์ ์๊ฐ ์๊ธฐ ๋๋ฌธ)
- s์ ๊ดํธ๊ฐ๋ค์ ๊ฐ๊ฐ 1๊ณผ -1๋ก ๋๊ณ ๋์ ํฉ์ ๊ตฌํด๊ฐ๋ฉด์ ์์๊ฐ ๋์ค๋ ์๊ฐ์ false (์ค๋ฅธ์ชฝ ๊ดํธ ')'๊ฐ ๋จผ์ ๋์๋ค๋ ์๋ฏธ๋๊น)
- s์ ๋ํ ๊ธธ์ด n ๋ฐ s์ ๋์ ๊ฐ์ ๊ตฌํ๊ธฐ ์ํ sum์ ์ ์ธ ๋ฐ ํ ๋นํฉ๋๋ค.
- n์ด ํ์์ผ ๋๋ false๋ฅผ ๋ฆฌํดํ๊ณ ์ง์์ธ ๊ฒฝ์ฐ s์ ๋ํด '(' -> 1, ')' -> -1๋ก mappingํด์ค๋๋ค.
- s ๋ฐฐ์ด์ ํ๋์ฉ ๋์ ํฉํด๊ฐ๋ฉฐ ๊ทธ ํฉ์ด ์์์ธ ๊ฒฝ์ฐ '('๊ฐ ์์ด ')'๊ฐ ๋ฑ์ฅํ๋ค๋ ์๋ฏธ์ด๋ฏ๋ก false๋ฅผ ๋ฆฌํดํฉ๋๋ค.
- ๋ง์ง๋ง์ผ๋ก ๋์ ํฉ์ด 0์ผ ๋๋ true, ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ(์๋ฅผ ๋ค์ด '(((('), false๋ฅผ ๋ฆฌํดํฉ๋๋ค.
ํ์คํ ๋ ๋ฒจ2๋ถํฐ๋ ํจ์จ์ฑ ๊ฒ์ฌ๋ ์์ด์ ๊ทธ ๋ถ๋ถ์ ๋ค ๋ง์ถ๋ ๊ฒ ์ฝ์ง ์์ต๋๋ค.
๊ทธ๋๋ ์ด์ ๋ณด๋ค ์ด์ค๋ฐ๋ณต๋ฌธ์ ๋ ์ฐ๋ ค๊ณ ๋
ธ๋ ฅํ๊ฑฐ๋ ๊ฐ๋ฅํ๋ฉด ๋ณ์๋ฅผ ํ์ดํธํ๊ฒ ์ ์ธ ๋ฐ ํ ๋นํ๋ ๋ฑ
์ต์ํ์ ๋
ธ๋ ฅ์ด๋ผ๋ ํ ์ ์๋ ๊ฒ ๊ฐ์์ ๋ง์ด ๋ฐฐ์ฐ๊ณ ์์ต๋๋ค. :)
'๐ JavaScript > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JS] ์ฐ์ต๋ฌธ์ - ๋ฉ๋ฆฌ ๋ฐ๊ธฐ (0) | 2022.07.07 |
---|---|
[JS] ์ฐ์ต๋ฌธ์ - ๋ค์ ํฐ ์ซ์ (0) | 2022.07.06 |
[JS] ์ฐ์ต๋ฌธ์ - ์ซ์ ๋ธ๋ก (0) | 2022.07.05 |
[JS] ์ฐ์ต๋ฌธ์ - ํ๋ ฌ์ ๊ณฑ์ (0) | 2022.07.05 |
[JS] ์ฐ์ต๋ฌธ์ - ์ต์๊ฐ ๋ง๋ค๊ธฐ (0) | 2022.07.05 |