반응형
programmers.co.kr/learn/courses/30/lessons/60058
문제 설명
잘못된 괄호를 올바른 괄호 형식으로 바꾸는 문제입니다.
실제 카카오 코딩테스트 기출문제 답게 문제가 상당히 길어서 위 링크를 꼭 확인하시길 바랍니다.
문제에 대한 설명이 위 링크에 자세히 나옵니다!
풀이 과정
스택을 이용한 단순 구현 문제입니다.
해당 설명에 따라서 그대로 구현만 해주시면 특별히 어려움은 없을거에요.
코드에 대해 궁금하신 사항이 있으시면 댓글 남겨주세요!
def step2(p):
count = 0
for i in range(len(p)):
if p[i] == "(":
count += 1
else:
count -= 1
if count == 0:
return p[:i+1], p[i+1:]
def step3(u):
stack = []
for i in u:
if i == "(":
stack.append(i)
else:
if not stack:
return False
stack.pop()
return True
def solution(p):
answer = ''
#step1
if not p:
return ''
#step2
u, v = step2(p)
#step3
if step3(u):
return u+solution(v)
#step4
#4-1
answer += "("
#4-2
answer += solution(v)
#4-3
answer += ")"
#4-4
for i in u[1:-1]:
if i == "(":
answer += ")"
else:
answer += "("
#4-5
return answer
print(solution("(()())()"))
전체 문제 & 코드는 위의 깃에 정리되어 있습니다.
팔로우 & 맞팔은 환영입니다 !
반응형
'Algorithm > Stack & Queue' 카테고리의 다른 글
[백준] 2504 괄호의 값 (Python 파이썬) (2) | 2021.10.05 |
---|---|
[프로그래머스] 줄 서는 방법 (Python 파이썬) (2) | 2021.04.23 |
[백준] 5430번 AC (Python 파이썬) (2) | 2021.04.17 |
[백준] 1021번 회전하는 큐 (Python 파이썬) (0) | 2021.04.16 |
[백준] 1966번 프린터 큐 (Python 파이썬) (0) | 2021.04.16 |