peacekim
할 수 있는 것과 할 수 없는 것.
peacekim
전체 방문자
오늘
어제
  • 분류 전체보기 (68)
    • 👨‍🏫ps (44)
      • ❄️프로그래머스 (20)
      • 🔟0️⃣백준 (21)
      • leetcode (3)
    • ✍🏻study (20)
      • 👐java (6)
      • 🍃spring (1)
      • 🥇algorithm (0)
      • 🚘oodp (4)
      • 📒 jpa (3)
      • 👣DB (2)
      • 🌂네트워크 (0)
      • 🎸기타 (3)
      • 👊 kotlin (1)
      • 🫥 jvm (0)
    • 📽project (4)
      • 🎀ReBoN (4)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

인기 글

최근 글

티스토리

hELLO · Designed By 정상우.
peacekim

할 수 있는 것과 할 수 없는 것.

[프로그래머스] 괄호 변환 [python]
👨‍🏫ps/❄️프로그래머스

[프로그래머스] 괄호 변환 [python]

2023. 3. 25. 23:14
반응형

문제

괄호하면 생각나는 자료구조인 stack을 사용하는 구현문제이다.

문제를 이해하는 게 좀 어렵지만, 그냥 저기 나와있는 그대로 하면 된다.

진짜 그대로만 구현하면 된다,,

코드

def solution(p):
    answer = ""
    # 1.
    
        
    return fun("", p)
def fun(u,v):
    if v == "":
        return ""
    leftCnt = 0
    rightCnt = 0
    # 2. ( 와 ) 개수가 같을 때까지 찾기
    for i in range(len(v)):
        if v[i] == "(":
            leftCnt += 1
        else:
            rightCnt += 1
        if leftCnt == rightCnt:
            if i == len(v) - 1:
                u = v
                v = ""
                break
            u = v[:i+1]
            v = v[i+1:]
            break
    # 3. u가 올바른 괄호 문자열 인지 판별
    stack = []
    for i in range(len(u)):
    
        # 만약 ) 인데 stack이 null 이면 continue
        if u[i] == ")":
            if stack:
                stack.pop()
        else: 
            stack.append(u[i])
                
    
    # 만약 stack이 empty면 올바른 괄호 문자열 아니면 올바른 거 아님
    if len(stack) == 0:
        return u + fun("", v)
    tmp = "("
    tmp += fun("",v)
    tmp += ")"
    u = u[1:-1]
    for i in range(len(u)):
        if u[i] == "(":
            tmp += ")"
        else:
            tmp += "("
    return tmp
        

"""
구현 문제로
그냥 구현하라는 대로 따라서 구현하면 될 거 같은데
"""
반응형

'👨‍🏫ps > ❄️프로그래머스' 카테고리의 다른 글

[프로그래머스] 거리두기 확인하기 [python]  (0) 2023.03.29
[프로그래머스] 택배상자 [python]  (0) 2023.03.26
[프로그래머스] 메뉴 리뉴얼 [python]  (0) 2023.03.25
[프로그래머스] 롤케이크 자르기 [python]  (0) 2023.03.24
[프로그래머스] 숫자 변환하기 [python]  (0) 2023.03.24
    '👨‍🏫ps/❄️프로그래머스' 카테고리의 다른 글
    • [프로그래머스] 거리두기 확인하기 [python]
    • [프로그래머스] 택배상자 [python]
    • [프로그래머스] 메뉴 리뉴얼 [python]
    • [프로그래머스] 롤케이크 자르기 [python]
    peacekim
    peacekim
    할 수 있는 것과 할 수 없는 것. github: https://github.com/PyeongGangKim

    티스토리툴바