https://school.programmers.co.kr/learn/courses/30/lessons/12973
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
<내코드>
def solution(s):
s_list = list(s)
idx = 0
while True:
if idx == len(s_list): break
if idx >= 1 and (s_list[idx] == s_list[idx-1]):
del s_list[idx-1:idx+1]
idx = 0
continue
idx += 1
if not s_list: return 1
return 0
-> 단순하게 문자열리스트 순회를 통해 같은 문자가 있다면 del()메소드를 통해 없애고 처음으로 돌아오고 반복하는 작업을 진행해주었다.
근데 시간초과로 인해 테스트를 통과하지 못했다.. 당연하게도 O(n)을 여러번 굴리는데 시간초과가 안 날수 없었다.
이번에도 gpt선생님한테 여쭤보니 stack을 통해 짝이 맞는지 체크하라고 하신다.
다시 문제를 톺아보니 흔한 paranthesis 괄호문제와 동일한 부분이 보였다.
뚝배기 아프다.
<정해코드>
def solution(s):
stack = []
for char in s:
if stack and stack[-1] == char: stack.pop()
else: stack.append(char)
if stack: return 0
return 1
'Algorithm > Programmers' 카테고리의 다른 글
[Programmers / Level2] 구명보트 (0) | 2024.01.21 |
---|---|
[Programmers / Level2] 점프와 순간이동 (5) | 2024.01.20 |
[Programmers / Level2] 피보나치 수 (0) | 2024.01.18 |
[Programmers / Level2] 숫자의 표현 (0) | 2024.01.17 |
[Programmers / Level2] 이진 변환 반복하기 (0) | 2024.01.16 |