728x90
https://school.programmers.co.kr/learn/courses/30/lessons/12973
처음에는
while문과 for문을 활용해서
s[i] == s[i-1]를 비교해서 같으면 제거하고
제거한 리스트에서 다시 또 비교하는걸 반복했다
그랬더니 아뿔싸 시간초과
질문게시판 들어갔다가 스택이라는 글자를 봐버렸다
이 힌트 없었으면 못풀었을듯
이런생각 어떻게 하는거야~~~
스택을 만들어서 top과 같은문자면 pop
같은문자가 아니면 push
반복해서 성공적으로 수행가능한 경우면 스택이 텅 비어있고
불가능한 문자열이면 스택에 문자가 남아있다
문자열을 한번만 돌아도 풀수있다!!!
잊지말자 스택
def solution(s):
stack = [s[0]]
for i in range(1,len(s)):
if len(stack) == 0:
stack.append(s[i])
elif stack[-1] == s[i]:
stack.pop()
elif stack[-1] != s[i]:
stack.append(s[i])
if len(stack) == 0:
return 1
else:
return 0
728x90
'코테준비 > 알고리즘' 카테고리의 다른 글
[프로그래머스] 모음사전 (1) | 2023.11.09 |
---|---|
[프로그래머스]해시-전화번호 목록 (1) | 2023.11.02 |
Jadencase (0) | 2023.10.20 |
유클리드 호제법 (0) | 2023.09.05 |
백트래킹 (0) | 2023.08.24 |