
반복문을 돌려서 문자열을 바꿔가면서 조건을 상세하게 달아줄 것이다. 예를 들어 현재 인덱스의 원소가 [가 나오면 stack에 넣어주고 하나하나 넘어가다가 ]가 나오면 이전에 넣어놓았던 [를 빼서 상쇄시켜주면 된다. stack에 넣는 이유는 [{}]이런식일때 뒤에 넣었던 {부터 빼내주기 위함이다. stack을 오랜만에 사용하기때문에 한번 더 살펴보고 가야겠다.
source : https://genius-dev.tistory.com/entry/Kotlin%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0-Stack%EA%B3%BC-Queue%EC%97%90-%EB%8C%80%ED%95%98%EC%97%AC
아마pop()과peek()정도를 사용하게 될 듯 하다.
s의 배열을 바꿔가며 진행해야하므로 새로운 변수에 저장한다.s의 길이만큼 반복문을 반복하면서 상세 조건을 달아준다.stack이 비어있으면 현재의 원소를 push()한다.[,{,(이러한 열린괄호이면 push()한다.]이고 stack에서 peek()한 원소가 [일경우엔 pop())stack이 비어있으면 answer를 +1한다.answer의 초기값이 -1이었으므로 리턴할때 +1을 해준다.레고레고

return에 answer만 입력하는걸 좋아하는데 문제를 최대한 안건드리기 위해서 +1을 해주었다. stack을 사용해야겠다는걸 생각하는건 어렵지 않았지만 비어있을때 push()해주는것이 잘 떠오르지 않았다. 그런데 막상 다 풀고나니 그리 어렵지 않은 문제인 것 같기도 하다....

통과~!~!