s๋ ์ฌ๋ฌ ๊ดํธ๋ค๋ก ์ด๋ฃจ์ด์ง String ์ธ์์ ๋๋ค. s๊ฐ ์ ํจํ ํํ์ธ์ง ์๋์ง true/false๋ก ๋ฐํํด์ฃผ์ธ์.
์ข ๋ฅ๋ '(', ')', '[', ']', '{', '}' ์ผ๋ก ์ด 6๊ฐ ์์ต๋๋ค. ํ ๋ฒ ๊ดํธ๋ฅผ ์์ํ์ผ๋ฉด, ๊ฐ์ ๊ดํธ๋ก ๋๋ด์ผ ํ๋ฉฐ ๊ดํธ์ ์์๊ฐ ๋ง์์ผ ํฉ๋๋ค.
Example return "()" true "()[]{}" true "(]" false "([)]" false "{[]}" true "[]{}" true
function isValid(s){
const arr = [] // ์ ํจ์ฑ ๊ฒ์ฌ๋ฅผ ํ ๋ ์ฌ์ฉํ ๋น ๋ฐฐ์ด
for(i=0;i<s.length;i++){
if(s[i] === "(" || s[i] === "{" || s[i] === "["){
arr.push(s[i]) // ( { { ์ ๊ฐ์ ์ ๊ดํธ๋ฅผ ๋ง๋๋ฉด ๋ฐฐ์ดarr์ ๋ฃ์
}else if(arr[arr.length-1] === "(" && s[i] === ")" ||
arr[arr.length-1] === "{" && s[i] === "}" ||
arr[arr.length-1] === "[" && s[i] === "]") {
arr.pop() // ๋ง์ฝ ๋ฐฐ์ดarr์ ๋ง์ง๋ง ๊ฐ์ด ( or { or [ ์ผ๋
} else {
return false
}
}
return arr.length ? false : true
}
์์ ๋ณต์กํด๋ณด์ฌ๋, ์กฐ๊ฑด๋ฌธ ํ๋๋ฉด ๋๋๋ค. (์ฐ๋๊ฒ ํ๋ค๋ค)