프로그래머스 짝지어 제거하기 코드 및 해설 (파이썬)
2021. 6. 2. 02:56ㆍalgorithm
반응형
https://programmers.co.kr/learn/courses/30/lessons/12973
큐를 활용한 괄호 문제들과 비슷하게 풀이했습니다.
빈 큐인 q를 만들고, 입력으로 주어진 s의 문자를 하나씩 받으면서 q가 비어있거나, q의 마지막 요소가 현재 받은 문자와 다르면, q에 현재 문자를 추가합니다.
q의 마지막 요소가 현재 문자와 같으면, q의 마지막 요소를 제거합니다.
for 문이 종료되었을 때 q가 비어있으면 모든 문자가 제거된 것이므로 1을, 그렇지 않으면 0을 반환합니다.
from collections import deque
def solution(s):
q = deque()
for char in s:
# 큐가 비어있거나 마지막 요소가 현재 문자와 다르면, 현재 문자 추가
if not q or q[-1] != char:
q.append(char)
# 큐의 마지막 요소와 현재 문자가 같으면, 마지막 요소 제거
else:
q.pop()
# 큐가 비어 있으면 문자열을 모두 제거한 것이므로 1 반환
if not q:
return 1
else:
return 0
반응형
'algorithm' 카테고리의 다른 글
프로그래머스 멀쩡한 사각형 코드 및 해설 (파이썬) (0) | 2021.06.02 |
---|---|
프로그래머스 기능개발 코드 및 해설 (파이썬) (0) | 2021.06.02 |
프로그래머스 키패드 누르기 코드 및 해설 (파이썬) (1) | 2021.06.01 |
프로그래머스 보석쇼핑 코드 및 해설 (파이썬) (0) | 2021.06.01 |
프로그래머스 JadenCase 문자열 만들기 코드 및 해설 (파이썬) (0) | 2021.06.01 |