프로그래머스/2단계

짝지어 제거하기

js0616 2024. 5. 19. 04:48

 

반복문 2중으로 사용 

def solution(s):
    answer = 0    
   
    while len(s) > 0:
        count = 0
       
        for i in range(len(s)-1):
            if s[i] == s[i+1]:
                s = s[:i] + s[i+2:]
                count += 1
                break
       
        if count == 0:
            break
   
    if len(s) == 0 :
        answer = 1

    return answer

 

시간초과  

 

 

 

text 라는 변수에 하나씩 넣으면서 맨 뒤에 값가지고 비교

def solution(s):
    answer = 0    
   
    text = ''
   
    for i in s :
        if len(text) == 0:
            text = i
        else :
            if text[-1] == i :
                text = text[:-1]
            else :
                text = text + i
               
    if len(text) == 0 :
        answer = 1

    return answer

 

 

효율성 시간초과 

 

 

위의 로직을 배열로 적용

def solution(s):
    answer = 0    
   
    text = []
   
    for i in s :
        if len(text) == 0:
            text.append(i)
        else :
            if text[-1] == i :
                text.pop()
            else :
                text.append(i)
               
    if len(text) == 0 :
        answer = 1

    return answer

 

 

자료구조는 list 가 string 보다 더 유리한가?