문제 해결
이 문제는 문제에 나온대로 그대로 코드로 변환하면 되는 문제다. 3가지 테스트 케이스에 대해서 한 번 보고, 문제를 제대로 이해했는지 살펴본 뒤에 코드로 변환했다. 코드로 변환하고 바로 맞았던 문제.
나의 풀이
# 균형잡힌 문자열 추출하는 함수
def balancedString(s):
# (())
a = 0
b =0
for index, element in enumerate(s):
if element == '(':
a += 1
elif element == ')':
b += 1
if a == b:
return s[:index+1]
return ''
# 올바른 문자열 추출하는 함수
def correctString(s):
stack = []
for element in s:
if element == '(':
stack.append(element)
elif element == ')' and len(stack) > 0 and stack[-1] == '(':
stack.pop()
if len(stack) > 0:
return False
else:
return True
def solution(p):
answer = ''
if len(p) == 0:
return answer
if correctString(p):
return p
u = balancedString(p)
v = p[len(u):]
temp = ''
if correctString(u):
return u + solution(v)
else:
temp += '('
temp += solution(v)
temp += ')'
for element in u[1:-1]:
if element == '(':
temp += ')'
elif element == ')':
temp += '('
return temp
다른 풀이
IDEA
'Coding Test > 문제 풀이' 카테고리의 다른 글
[문제 풀이] 뉴스 클러스터링 (0) | 2022.02.08 |
---|---|
[문제 풀이] 메뉴 리뉴얼 (0) | 2022.02.07 |
[문제 풀이] H-Index (0) | 2022.01.28 |
[문제 풀이] 기능개발 (0) | 2022.01.25 |
[문제 풀이] 오픈채팅방 (0) | 2022.01.24 |