s는 여러 괄호들로 이루어진 String 인자입니다. s가 유효한 표현인지 아닌지 true/false로 반환해주세요.
종류는 '(', ')', '[', ']', '{', '}' 으로 총 6개 있습니다.
아래의 경우 유효합니다. 한 번 괄호를 시작했으면, 같은 괄호로 끝내야 한다.
괄호 순서가 맞아야 한다.
예를 들어 아래와 같습니다.
s = "()"
return true
s = "()[]{}"
return true
s = "(]"
return false
s = "([)]"
return false
s = "{[]}"
return true
답
function isValid(s) {
let newArr = s
while(newArr.includes('()')){
newArr = newArr.replace('()','');
}
while(newArr.includes('[]')){
newArr = newArr.replace('[]','');
}
while(newArr.includes('{}')){
newArr = newArr.replace('{}','');
}
if(newArr.length === 0){
return true;
}else{
console.log(newArr)
return false;
}
}
--2번째
function isValid(s) {
// 여기에 코드를 입력해주세요.
tmp = [];
for (let i = 0; i < s.length; i++) {
if (s[i] == '(' || s[i] == '{' || s[i] == '[') {
tmp.push(s[i]);
}
else {
if ((s[i] == ')' && tmp[tmp.length - 1] == '(') ||
(s[i] == '}' && tmp[tmp.length - 1] == '{') ||
(s[i] == ']' && tmp[tmp.length - 1] == '[')) tmp.pop();
else return false;
}
}
if (tmp.length != 0) return false;
else return true;
}