연습장

짝지어 제거하기 본문

프로그래머스/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 보다 더 유리한가?

'프로그래머스 > 2단계' 카테고리의 다른 글

[mysql] 부모의 형질을 모두 가지는 대장균 찾기  (0) 2024.07.03
점프와 순간이동  (0) 2024.05.20
카펫  (0) 2024.04.30
피보나치 수  (0) 2024.04.30
다음 큰 숫자  (0) 2024.04.30