[프로그래머스] 짝지어 제거하기

yewon Lee·2023년 9월 11일
0


😎코딩테스트 연습>2017 팁스타운>짝지어 제거하기


📘 문제풀이


첫번째 시도

이전 문자를 담을 수 있는 변수 s1를 선언
s1과 현재 문자가 같다면 replace로 지우기
같지 않다면 s1은 현재 문자로 바꾸기
s의 길이가 줄어들지 않는다면 0 리턴
s의 길이가 0이면 되면 1 리턴

문제점
s1을 초기화 안해주면 문자는 같은데 지워지지않는 오류 발생
s1을 초기화 -> 시간초과

def solution(s):
    s1 = ''
    while s:
        l = len(s)
        for i in range(len(s)):
            if s1 == s[i]:
                s = s.replace(s1*2, '')
                s1 = ''
                break
            else:
                s1 = s[i]
            
        if l == len(s):
            return 0
        
    return 1


두번째 시도

stack을 이용

def solution(s):
    stack = []
    
    for i in s:
        if stack:
            p = stack.pop()
            if i == p:
                continue
            else:
                stack.append(p)
                stack.append(i)
        else:
            stack.append(i)
            
    return  int(not(stack))
성공!
profile
시작

0개의 댓글