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 |