본문 바로가기
코딩 테스트/DFS, BFS

괄호 변환

by hazel_ 2021. 1. 29.

p.346

 

DFS/BFS 문제라기 보단 구현 문제에 가까움

 

def divide(p):
  count=0
  for i in range(len(p)):
    if p[i]=='(':
      count+=1
    else:
      count-=1
    if count == 0:
      return i

def iscorrect(u):
  count = 0
  for i in range(len(u)):
    if u[i]==')':
      if count == 0:
        return False
      count -= 1
    else:
      count +=1
  return True

def solution(p):
    answer = ''
    if p==answer:
      return answer
    
    index=divide(p)
    u,v=p[:index+1],p[index+1:]

    if iscorrect(u) == True:
      answer=u+solution(v)
    else:
      answer='('
      answer+=solution(v)
      answer+=')'
      for i in range(1,len(u)-1):
        if u[i]=='(':
          answer+=')'
        else:
          answer+='('
    return answer

p=input()

a=solution(p)
print(a)

'코딩 테스트 > DFS, BFS' 카테고리의 다른 글

감시 피하기  (0) 2021.01.31
연산자 끼워넣기  (0) 2021.01.31
경쟁적 전염  (0) 2021.01.27
연구소  (0) 2021.01.26
특정 거리의 도시 찾기  (0) 2021.01.26

댓글