[Code Kata] 올바른 괄호인지 확인

박광수·2022년 3월 27일
0

Q.

s는 여러 괄호들로 이루어진 String 인자입니다. s가 유효한 표현인지 아닌지 true/false로 반환해주세요.

종류는 '(', ')', '[', ']', '{', '}' 으로 총 6개 있습니다. 아래의 경우 유효합니다.

한 번 괄호를 시작했으면, 같은 괄호로 끝내야 한다. 괄호 순서가 맞아야 한다.

예를 들어 아래와 같습니다.

s = "()"
return true

s = "()[]{}"
return true

s = "(]"
return false

s = "([)]"
return false

s = "{[]}"
return true

A.

def is_valid(string):
  brackets=['()', '[]', '{}', '[]', '()']

  for bracket in brackets:
    while bracket in string:
      string = string.replace(bracket, '')

  return string==''
  • (), [], {}, [], () 를 보이는대로 제거해보는 코드이다.
  • while문의 코드는 (()), [[]] 등의 같은 모양의 여러겹 괄호를 삭제하기 위한 코드
  • [], () 이 뒤에 다시 나오는 이유는 ([]) 과 같은 모양은 []를 먼저 제거해야 ()를 제거할 수 있는데 brackets 리스트에서 순서에 따라 제거되지 않을 수 있다는 것을 보완하기 위함
profile
박광수입니다.

0개의 댓글

관련 채용 정보