programmers.co.kr/learn/courses/30/lessons/60058
from collections import Counter
flag = ['(',')']
def balance(s) :
counter = Counter(s)
if counter[flag[0]] == counter[flag[1]] : return True
else : return False
def correct(s) :
stack = []
stack.append(s[0])
for i in range(1, len(s)) :
if len(stack) == 0 or stack[-1]==flag[1] or (stack[-1] == flag[0] and s[i] == flag[0]) :
stack.append(s[i])
else : stack.pop()
if len(stack)==0 : return True
else : return False
def solution(p):
answer = ''
u, v = '',''
if len(p) == 0 or correct(p) : return p
for i in range(2, len(p)+1, 2) :
if balance(p[0:i]) :
u, v = p[0:i], p[i:]
break
if correct(u) :
answer += u + solution(v)
else :
answer += flag[0] + solution(v) + flag[1]
for i in u[1:-1] :
if i == flag[0] : answer += flag[1]
else : answer += flag[0]
return answer
정확성 테스트
테스트 1 〉 | 통과 (0.01ms, 10.3MB) |
테스트 2 〉 | 통과 (0.04ms, 10.3MB) |
테스트 3 〉 | 통과 (0.01ms, 10.3MB) |
테스트 4 〉 | 통과 (0.07ms, 10.2MB) |
테스트 5 〉 | 통과 (0.01ms, 10.2MB) |
테스트 6 〉 | 통과 (0.08ms, 10.3MB) |
테스트 7 〉 | 통과 (0.08ms, 10.2MB) |
테스트 8 〉 | 통과 (0.01ms, 10.3MB) |
테스트 9 〉 | 통과 (0.10ms, 10.2MB) |
테스트 10 〉 | 통과 (0.08ms, 10.3MB) |
테스트 11 〉 | 통과 (0.21ms, 10.3MB) |
테스트 12 〉 | 통과 (0.38ms, 10.2MB) |
테스트 13 〉 | 통과 (0.55ms, 10.2MB) |
테스트 14 〉 | 통과 (1.30ms, 10.3MB) |
테스트 15 〉 | 통과 (2.12ms, 10.2MB) |
테스트 16 〉 | 통과 (4.36ms, 10.2MB) |
테스트 17 〉 | 통과 (4.80ms, 10.2MB) |
테스트 18 〉 | 통과 (7.62ms, 10.3MB) |
테스트 19 〉 | 통과 (13.50ms, 10.3MB) |
테스트 20 〉 | 통과 (17.57ms, 10.3MB) |
테스트 21 〉 | 통과 (7.33ms, 10.2MB) |
테스트 22 〉 | 통과 (3.02ms, 10.3MB) |
테스트 23 〉 | 통과 (6.94ms, 10.2MB) |
테스트 24 〉 | 통과 (1.49ms, 10.2MB) |
테스트 25 〉 | 통과 (5.95ms, 10.3MB) |
채점 결과
정확성: 100.0
합계: 100.0 / 100.0
'코테' 카테고리의 다른 글
[프로그래머스] <풍선 터트리기> 파이썬 (0) | 2021.04.05 |
---|---|
[프로그래머스] <소수 찾기> 파이썬 (0) | 2021.04.05 |
[프로그래머스] <더 맵게> 파이썬 (0) | 2021.04.04 |
[프로그래머스] <2xn타일링> 파이썬 (0) | 2021.04.04 |
[프로그래머스] <삼각 달팽이> 파이썬 (0) | 2021.04.04 |