728x90
https://school.programmers.co.kr/learn/courses/30/lessons/12973
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문자열 S = baabaa 라면 b aa baa → bb aa → aa → 모두 제거 완료
기존 아이디어.
While True 반복문 속에서
현 위치의 문자와 다음에 이어서 오는 문자가 같다면 pop()을 두번 진행한다.
-> 시간 초과 오류가 계속 발생
해당 문자열 길이만큼만 for문을 돌면서 stack에 문자를 하나씩 추가한다.
stack에 마지막에 들어간 문자와 stack에 추가할 문자가 같다면 pop() 하고 추가하지 않는다.
전체 코드
def solution(s):
answer = -1
stack=[]
for i in s:
if stack==[]:
stack.append(i)
elif stack[-1]==i:
stack.pop()
else:
stack.append(i)
if len(stack)==0:
answer=1
else:
answer=0
return answer
728x90
'알고리즘' 카테고리의 다른 글
구름톤 챌린지 Day06 - Day08 [완전탐색] (0) | 2023.08.31 |
---|---|
구름톤 챌린지 Day01 - Day05 [구현] (0) | 2023.08.30 |
[프로그래머스] 소수찾기 (Python) (0) | 2022.07.24 |
[프로그래머스] 프린터 (Python) (0) | 2022.07.20 |
[프로그래머스] 신고 결과 받기 (Python) (0) | 2022.07.04 |