최대 1 분 소요

https://school.programmers.co.kr/learn/courses/30/lessons/133502

처음에 join함수를 이용해 문자열로 만든 뒤, 문자열 슬라이싱을 이용해 풀었지만 계속해서 시간초과가 났다. 결국 다른 사람의 블로그를 검색해서 풀었다..

내 풀이(오답)

def solution(ingredient):
    answer = 0
    ingredient = ''.join(map(str, ingredient))
    idx = 0
    while True :    
        if ingredient[idx] != '1' :
            idx += 1
        else :
            if ingredient[idx : idx + 4] == "1231" :
                answer += 1
                ingredient = ingredient[0 : idx] + ingredient[idx + 4 : ]
                idx = 0
            else :
                idx += 1
        
        if idx == len(ingredient) - 1 :
            return answer

정답

def solution(ingredient) :
    answer = 0
    stack = []
    for i in ingredient :
        stack.append(i)
        if stack[-4 : ] = [1, 2, 3, 4] :
            answer += 1
            for _ in range(4) :
                stack.pop()
                
	return answer

댓글남기기