문제 링크
https://school.programmers.co.kr/learn/courses/30/lessons/12973
문제 설명
알파벳 소문자로 이루어진 문자열을 같은 알파벳이 2개 붙어 있는 짝을 제거하여,
앞 뒤로 문자열을 이어 붙인 것을 반복한다.
이 과정을 반복해서 문자열을 모두 제거하면 1을 return, 남아 있으면 0을 리턴하는 문제이다.
제한 사항
- 문자열의 길이 : 1,000,000 이하의 자연수
- 문자열은 모두 소문자로 이루어져 있습니다.
풀이
스택을 활용하였다. 문자를 스택에 넣은 다음, 같은 문자가 나오면 스택에서 제거하여,
스택에 남아 있는 문자에 따라 return 해주었다.
✅ Code - 성공
def solution(s):
stack = []
for alpha in s:
if len(stack) > 0 and stack[-1] == alpha:
stack.pop(-1)
else:
stack.append(alpha)
if stack:
return 0
else:
return 1
'알고리즘 문제 > 프로그래머스_Lv2 도장깨기' 카테고리의 다른 글
[프로그래머스] 점프와 순간 이동 (Python) (0) | 2024.01.16 |
---|---|
[프로그래머스] 배달 (Python) (0) | 2024.01.15 |
[프로그래머스] N개의 최소공배수 (Python) (0) | 2024.01.12 |
[프로그래머스] JadenCase 문자열 만들기 (0) | 2024.01.05 |
[프로그래머스] 멀리 뛰기 (Python) (0) | 2024.01.03 |