
๊ดํธ๊ฐ ๋ฐ๋ฅด๊ฒ ์ง์ง์ด์ก๋ค๋ ๊ฒ์ '(' ๋ฌธ์๋ก ์ด๋ ธ์ผ๋ฉด ๋ฐ๋์ ์ง์ง์ด์ ')' ๋ฌธ์๋ก ๋ซํ์ผ ํ๋ค๋ ๋ป์ ๋๋ค. ์๋ฅผ ๋ค์ด
"()()" ๋๋ "(())()" ๋ ์ฌ๋ฐ๋ฅธ ๊ดํธ์
๋๋ค.
")()(" ๋๋ "(()(" ๋ ์ฌ๋ฐ๋ฅด์ง ์์ ๊ดํธ์
๋๋ค.
'(' ๋๋ ')' ๋ก๋ง ์ด๋ฃจ์ด์ง ๋ฌธ์์ด s๊ฐ ์ฃผ์ด์ก์ ๋, ๋ฌธ์์ด s๊ฐ ์ฌ๋ฐ๋ฅธ ๊ดํธ์ด๋ฉด true๋ฅผ return ํ๊ณ , ์ฌ๋ฐ๋ฅด์ง ์์ ๊ดํธ์ด๋ฉด false๋ฅผ return ํ๋ solution ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์.
๋ฌธ์์ด s์ ๊ธธ์ด : 100,000 ์ดํ์ ์์ฐ์
๋ฌธ์์ด s๋ '(' ๋๋ ')' ๋ก๋ง ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
์
์ถ๋ ฅ ์
s answer
"()()" true
"(())()" true
")()(" false
"(()(" false
| s | answer |
|---|---|
| "()()" | true |
| "(())()" | true |
| ")()(" | false |
| "(()(" | fasle |
๋ฐ๋ณต๋ฌธ์ ๋๋ฉฐ ์ฌ๋ ๊ดํธ๋ +1 ๋ซ๋ ๊ดํธ๋ -1์ ํ์ฌ count๋ฅผ ๊ณ์ฐํ๋ค. ์ด๋ ๋ง์ฝ count๊ฐ 0๋ณด๋ค ์์์ง๋ฉด ๋ซ๋ ๊ดํธ๋ง ์๋ ๊ฑฐ์ด๋ฏ๋ก false ๋ฐํ ๊ทธ๋ฆฌ๊ณ ์ต์ข ์ ์ผ๋ก count๊ฐ 0์ด๋ฉด true 0์ด ์๋๋ฉด ์ฌ๋ ๊ดํธ๋ง ์๋ ๊ฑฐ์ด๋ฏ๋ก false ๋ฐํ
function solution(s){
// ์นด์ดํ
let count = 0;
for(let i = 0;i<s.length;i++){
// ")"์ผ ๋ -1
if(s[i] === ")") count--;
// "("์ผ ๋ +1
if(s[i] === "(") count++;
// count๊ฐ 0๋ณด๋ค ์์ ๊ฒฝ์ฐ false
if(count < 0) return false;
}
// count๊ฐ 0์ธ ๊ฒฝ์ฐ true ์๋ ๊ฒฝ์ฐ false
return count === 0 ? true : false;
}
EASY