cording test

LV.2 괄호 회전하기

JM Lee 2023. 5. 7. 13:08
728x90

코딩테스트 연습 - 괄호 회전하기 | 프로그래머스 스쿨 (programmers.co.kr)

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

2레벨 문제.. 사실 겁나게 힘들었다.

이번 문제에서 스택의 중요성을 느껴서 공부하게 된 계기가 되었다.

def solution(s):
    answer = 0
    for _ in s: # _는 이 값을 활용하지 않겠다는 뜻
        s=s[1:]+s[:1]  # slice 함수 사용
        a=s # 기존 s에 영향을 주지 않기 위해, 판별만을 위한 또다른 객체 생성
        while "()" in a or "[]" in a or "{}" in a: 
            a=a.replace("()","").replace("[]","").replace("{}","")
            if a == "":
                answer += 1
    return answer

스택을 제대로 사용한 다른 분의 코드를 가져왔다.

def bracket(s):
        stack = []
        for i in s:
            if len(stack) == 0: 
            	stack.append(i)
            else:
                if i == ")" and stack[-1] == "(":   stack.pop()
                elif i == "]" and stack[-1] == "[":   stack.pop()
                elif i == "}" and stack[-1] == "{":   stack.pop()
                else: stack.append(i)
        return 1 if len(stack) == 0 else 0
        
def solution(s):
    answer = 0
    
    for i in range(len(s)):
        if bracket(s):  answer +=1
        s = s[1:] + s[:1]
    return answer

'cording test' 카테고리의 다른 글

LV.1 기사단원의 무기  (0) 2023.05.07
LV.0 다음에 올 숫자  (0) 2023.05.07
LV.1 예산  (0) 2023.05.07
LV.1 둘만의 암호  (0) 2023.05.03
LV.1 비밀지도/ 파이썬 bin함수 / zfill 함수  (0) 2023.05.02