Post

Programmers_월간 코드 챌린지 시즌2 괄호 회전하기(python)

프로그래머스 -괄호 회전하기 문제 입니다.

1. 문제

https://programmers.co.kr/learn/courses/30/lessons/76502


2. 분류 및 난이도

Programmers 문제입니다.
월간 코드 챌린지 시즌2 문제입니다. Level 2난이도의 문제입니다.


3. 생각한 것들(문제 접근 방법)

  • brute하게 풀었지만, brute하게 접근을 안하는 방법이 있습니다.
  • 올바른 괄호를 찾고 그 괄호에서의 올바른 괄호쌍들의 갯수를 찾아주면 되겠지만, brute하게 풀어도 시간초과가 나지 않으므로 brute하게 해결했습니다.

4. 접근 방법을 적용한 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
from collections import deque
def solution(s):
    answer = 0
    for i in range(len(s)):
        temp  = s[i:]+ s[:i]
        ls = deque()
        check = True
        for j in range(len(temp)):
            ct = temp[j]
            if ct =="(" or ct =="[" or ct =="{" :
                ls.append(ct)
            else :
                if len(ls) == 0 :
                    check = False
                    break
                popct = ls.pop()
                if popct == "(" and ct != ")" : 
                    check = False
                    break
                elif popct =="{" and ct != "}":
                    check = False
                    break
                elif popct =="[" and ct !="]":
                    check = False
                    break
        if check and len(ls)==0:
           answer+=1 
    return answer

5. 결과

필요시. c++ 짜드리겠습니다.

This post is licensed under CC BY 4.0 by the author.