728x90
반응형
📌 문제유형: 스택
📌 풀이코드
# 스택에 하나씩 넣는데, 만약 맨 위에 있는 거랑 같은 거면 pop
# 그냥 완전탐색..
def solution(s):
answer = -1
stk = []
for i in range(len(s)):
'''
스택이 비어있으면 넣고, stk[-1] 이랑 다르면 넣고 다음 문자로 넘어가기
스택이 안 비어있고, stk[-1]이랑 같으면 pop하고 다음 문자로 넘어가기
'''
if not stk:
stk.append(s[i])
continue
if s[i] == stk[-1]:
stk.pop()
else:
stk.append(s[i])
if stk: return 0
else: return 1
📌 풀이과정
- 내가 썼던 코드의 문제점: s는 끝까지 안 돈 상태인데, 중간에 stk이 빌 수 있다. 이럴 때 while문이 그냥 끝나버린다. 따라서 중간에 stk이 빌때가 있는지를 확인해줘야함.
# 스택에 하나씩 넣는데, 만약 맨 위에 있는 거랑 같은 거면 pop
# 그냥 완전탐색..
def solution(s):
answer = -1
s_list = list(map(str, s))
stk = []
stk.append(s_list[0])
pt = 1
while stk:
if pt == len(s_list)-1:
break
if stk[-1] != s_list[pt]:
stk.append(s_list[pt])
else: # stk[-1] == s_list[pt]
stk.pop()
pt += 1
if stk: return 0
else: return 1
728x90
반응형
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스/Python] Lv2. 피보나치 수 (0) | 2024.10.18 |
---|---|
[프로그래머스/Python] 다음 큰 수 (0) | 2024.10.18 |
[프로그래머스/Python] Lv2. 숫자의 표현 (0) | 2024.10.18 |
[프로그래머스/Python] 알고리즘고득점Kit-완전탐색-카펫 (0) | 2024.10.18 |
[프로그래머스/Python] 알고리즘고득점Kit-힙(Heap)-이중우선순위큐 (0) | 2024.10.18 |