s는 여러 괄호들로 이루어진 String 인자입니다.
s가 유효한 표현인지 아닌지 true/false로 반환해주세요.
종류는 '(', ')', '[', ']', '{', '}' 으로 총 6개 있습니다.
아래의 경우 유효합니다.
한 번 괄호를 시작했으면, 같은 괄호로 끝내야 한다.
괄호 순서가 맞아야 한다.
예를 들어 아래와 같습니다.
s = "()"
returntrue
s = "()[]{}"
returntrue
s = "(]"
returnfalse
s = "([)]"
returnfalse
s = "{[]}"
returntrue
for
문을 통해 '()', '[]', '{}' 가 인덱스값이 i, i+1로 연속으로 있을 경우에 splice나 delete를 사용하여 해당하는 값을 제거함.for
문이 끝난 배열을 join('')
으로 string으로 변환 후 string의 0일 경우에는 true를 return하고 0이 아닐 경우에는 false를 출력합니다.문제점
'(){}[]' 에 대한 값으로는
true
로 정답을 잘 출력하지만 '(())[]' 로 할 경우 0번째와 3번째 값이 남아서false
를 출력하여서 원하는대로 잘 출력되지 않은걸 확인함..
),},]
이고 value 값은 (,{,[
인 객체를 하나 생성합니다.for
문을 통해 배열의 요소를 돌면서 요소의 값이 (,{,[
인 경우에는 새로운 배열에 push 합니다.),},]
인 경우에는 새로운 배열에 해당 괄호를 여는 괄호가 있는 경우에는 새로운 배열에서 해당 여는 괄호를 삭제합니다.