728x90
유형 : 구현
그치 딱 봐도 구현 문제이다.. 그런데 처음에 문제를 이해하는데 '균형 잡힌 괄호 문자열' 이랑 '올바른 괄호 문자열' 이 헷갈렸다 ㅋㅋㅋ
문제 풀이의 핵심은 무엇일까
재귀함수를 적절히 만들어 주어야 한다 !!!!! 당연한 소리지만 -_-
1. 균형 잡힌 괄호 문자열이 p의 어느 인덱스 까지인지 반환해주는 함수 구현
2. 현재 문자열이 올바르괄호 문자열인지 아닌지 구하는 함수 구현하기
3. 재귀 함수로 호출할 solution(p) 부분 구현하기
def balance(p):
count = 0
for i in range(len(p)):
if p[i] == '(':
count += 1
else:
count -= 1
if count == 0:
return i
def check(p):
count = 0
for i in p:
if i == '(':
count += 1
else:
if count <= 0:
return False
count -= 1
return True
def solution(p):
answer = ''
if p == '':
return answer
index = balance(p)
u = p[:index+1]
v = p[index+1:]
if check(u):
answer = u + solution(v)
else:
answer += '('
answer += solution(v)
answer += ')'
u = list(u[1:-1])
for i in range(len(u)):
if u[i] == '(':
u[i] = ')'
else:
u[i] = '('
answer += ''.join(u)
return answer
728x90
'Algorithm (PS)' 카테고리의 다른 글
Python 고정점 찾기 (0) | 2021.11.12 |
---|---|
1715 파이썬 카드 정렬하기 (0) | 2021.11.07 |
백준 18405 경쟁적 전염 Python 풀이 (0) | 2021.11.03 |
[백준/파이썬/삼성] 14502 파이썬 풀이 (0) | 2021.10.31 |
[프로그래머스/카카오] 외벽점검 (0) | 2021.10.31 |