문제 : https://school.programmers.co.kr/learn/courses/30/lessons/76502
📜 접근 방법
- 문장(s)의 갯수만큼 반복문 돌린다.
- 만약 현재 문장에 괄호가 올바를 경우, (문장에 괄호가 올바르지 않을 경우 넘어간다.)
- 갯수(answer) + 1
- 맨 앞 문자를 맨 뒤로 보낸다.
- 만약 현재 문장에 괄호가 올바를 경우, (문장에 괄호가 올바르지 않을 경우 넘어간다.)
좀더 쉬운 문제 : https://school.programmers.co.kr/learn/courses/30/lessons/12909
좀더 쉬운 문제의 풀이 : https://chipndale.tistory.com/98
❌ 실패 코드
✅ 정답 코드
from collections import deque
# 문장에 괄호가 알맞게 있는지 확인하는 함수
def check_symmetry(s):
stack = []
for c in s:
if stack:
if c == ')':
c_pop = stack.pop()
if len(stack) == 0 and c_pop != '(':
return False
elif c == '}':
c_pop = stack.pop()
if len(stack) == 0 and c_pop != '{':
return False
elif c == ']':
c_pop = stack.pop()
if len(stack) == 0 and c_pop != '[':
return False
else:
stack.append(c)
else:
stack.append(c)
if stack:
return False
return True
def solution(s):
answer = 0
dq = deque(s)
dq_len = len(dq)
for i in range(dq_len):
if check_symmetry(dq) == True:
answer += 1
pop_c = dq.popleft()
dq.append(pop_c)
return answer
💡알게 된점
스택, 큐 사용시 deque를 활용해야겠다.
'코딩테스트 > Python' 카테고리의 다른 글
[python 백준 2075] N번째 큰수 (0) | 2023.05.02 |
---|---|
[python] 프로그래머스 주식가격 (1) | 2023.04.25 |
[python] 프로그래머스 영어 끝말잇기 (0) | 2023.04.22 |
[python] 프로그래머스 올바른 괄호 (0) | 2023.04.21 |
[python] 프로그래머스 콜라 문제 (0) | 2023.04.19 |