문제
코드
from collections import deque
def solution(s):
q = deque()
for i in range(len(s)):
if(len(q)==0 or s[i]!=q[len(q)-1]):
q.append(s[i])
elif(s[i]==q[len(q)-1]):
q.pop()
return 1 if len(q)==0 else 0
풀이
- 문자열에서 연속으로 오는 문자를 제거할 때 전부 제거할 수 있는지를 확인한다.
- 스택의 개념을 사용하면 손쉽게 풀 수 있음
- 스택 역할을 해주기 위해 deque 선언
- s문자열을 for문으로 돌면서 문자 제거
- q가 비어있거나 q의 마지막 문자와 현재의 문자가 다르면 q에 넣어준다.
- 만약 q의 마지막 문자와 현재 문자가 같으면 q를 pop해준다.
- 마지막에 q가 비어있을 경우 1을 아닐경우 0을 출력한다.
'알고리즘' 카테고리의 다른 글
[프로그래머스] 리코쳇 로봇 python (1) | 2024.02.14 |
---|---|
[프로그래머스] 미로 탈출 python (1) | 2024.02.13 |
[백준] 20920 영단어 암기는 괴로워 python (1) | 2024.02.05 |
[프로그래머스] 파일명 정리 python (0) | 2024.02.01 |
[프로그래머스] 석유 시추 python (0) | 2024.01.31 |