괄호 회전하기 - Python3

Поделиться
HTML-код
  • Опубликовано: 20 сен 2024
  • ========== 영상 시청 방법 ==========
    1. 영상의 앞부분 문제 설명을 시청하며 같이 문제를 이해한다.
    2. 문제 풀이 부분을 들어보기 전에 영상을 멈추고 어떤 방식으로 문제를 풀 지 생각을 해본다.
    (틀려도 좋습니다. 대략적인 생각이라도 좋습니다. 코드로 작성을 하지 않아도 좋습니다. 발전을 위해서는 스스로 생각해보는 과정이 꼭 필요합니다.)
    3. 내가 생각한 풀이 방법과 영상의 풀이 방법을 비교하며 나머지 영상을 시청한다.
    (코드를 작성한다면 여기서 많은 이득을 얻을 수 있습니다. 생각만 해봐도 공부가 많이 되긴 하지만 내가 어디서 틀렸는지 확인하기 힘듭니다. 왜냐하면 내 논리는 내 머릿속에서는 항상 맞기 때문입니다. 코드를 작성한다면 테스트 케이스를 통해 틀린 부분이 있다는것을 인지시켜 주기 때문에 "강의랑 내 코드랑 차이가 없는데 왜 내껀 안 돌아가지?" 라는 고민을 통해 2차적으로 성장할 수 있습니다.)
    #프로그래머스
    #알고리즘
    #코딩테스트
    #문제해결
    #Python3

Комментарии • 3

  • @Problem_Solution
    @Problem_Solution  Год назад

    def is_valid(s):
    # 짝을 아직 찾지 못한 괄호들을 저장하는 stack
    # 나중에 저장된 괄호가 짝을 이뤄 소거되어야
    # 이전에 저장된 괄호도 짝을 찾을 수 있기 때문에
    # stack의 구조를 사용하고 있다. (LIFO)
    stack = []
    for char in s:
    # 괄호가 짝을 이루고 있다면 소거시킨다.
    # if All True return True
    # if any False return False
    if stack and stack[-1] == '[' and char == ']':
    del stack[-1]
    elif stack and stack[-1] == '{' and char == '}':
    del stack[-1]
    elif stack and stack[-1] == '(' and char == ')':
    del stack[-1]
    # 짝을 찾지 못한 경우 stack에 저장한다.
    else:
    stack.append(char)
    # 짝을 찾지 못한 괄호들이 남아있다면 invalid 즉 False
    # 모든 괄호가 짝을 찾아 소거되었다면 valid 즉 True
    return stack == []
    def solution(s):
    # 0 1 2 3 4
    # a b c d e
    # 0 1 2 3 4 5
    answer = 0
    for x in range(len(s)):
    # left = s[:x]
    # right = s[x:]
    # rotated = right + left
    if is_valid(s[x:] + s[:x]):
    answer += 1
    return answer

  • @overwatchreaper
    @overwatchreaper Год назад

    오늘도 유익한 영상 감사합니다👍

    • @Problem_Solution
      @Problem_Solution  Год назад

      푸딩님 열심히 공부하는 모습 보기 좋습니다!
      이거 영상 하루 한개씩이라도 올리는게 은근 힘드네요 ㅎㅎ;;