알고리즘

[프로그래머스, 파이썬] 햄버거 만들기

hminor 2024. 2. 20. 12:06

풀이

  • 처음에는 check에 추가하기 전
  • [1,2,3,1] 각 요소에 하나씩 접근해서 맞는지 확인하는 작업을 해서 풀었더니
  • 시간초과가 발생하여서
  • stack을 사용해서 마지막 값과 같은지 확인하여 풀었더니 해결

해결코드

def solution(ingredient):
    result = 0
    check = []
    for i in ingredient:
        check.append(i)
        if check[-4:] == [1,2,3,1]:
            result += 1
            del check[-4:]
    return result

 

시간초과 코드

def solution(ingredient):
    result = 0
    while True:
        cnt = 0
        check = []
        for i in range(len(ingredient)):
            if ingredient[i] == li[cnt]:
                cnt += 1
                check.append(i)
                if cnt == 4: break
            elif ingredient[i] == li[0]:
                cnt = 1
                check = [i]
            elif check == []: continue
            else:
                cnt = 0
                check.clear()
        if cnt == 4:
            for i in range(4): ingredient.pop(check[i]-i)
            result += 1
        else: break
    return result