code_cata
문제!
- S는 여러 괄호들로 이루어진 String 인자 입니다. S가 유효한 표현인지 아닌지 True/False로 반환해 주세요.
- 종류는 "(", ")", "{", "}", "[", "]" 입니다.
s = "()"
return true
s = "()[]{}"
return true
s = "(]"
return false
s = "([)]"
return false
s = "{[]}"
return true
아예 구현을 하는데 있어서 방향성을 잡지를 못했다.
Model solution
![](https://velog.velcdn.com/images%2Feagle5424%2Fpost%2F29d37001-87b3-4efa-88f8-e829e8d5ab43%2Fimage.png)
- 먼저 left와 right로 각각 리스트로 정의해주고 빈 리스트인 stack을 선언해 준다.
- for루프로 임의의 변수 letter가 string의 숫자만큼 반복문을 돌린다.
- 만약 그 반복에서 letter가 left리스트 중 한개 이면 비어 있는 stack에 추가해준다.
- 또 letter가 right에 있는 요소일때 stack의 수가 0보다 작거나 같으면 False값을 추출해 준다.
- 만약 left.index(stack.pop())즉 stack에서 pop으로 뽑아낸 마지막 요소의 인덱스와 값과, right.index(letter)의 값이 같지 않다면 False를 return
- stack에 값이 남아 있지 않으면 함수는 종료된다.