DecordRay

[프로그래머스] Level1 : 햄버거 만들기[Python] 본문

알고리즘/프로그래머스

[프로그래머스] Level1 : 햄버거 만들기[Python]

DecordRay 2023. 2. 3. 18:21
728x90
반응형

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

* Tip - 문제 예시에서 문제의도(힌트)를 파악하는 것이 중요!!

문제 예시 중

상수의 앞에 쌓이는 재료의 순서가 [야채, 빵, 빵, 야채, 고기, 빵, 야채, 고기, 빵]일 때, 상수는 여섯 번째 재료가 쌓였을 때, 세 번째 재료부터 여섯 번째 재료를 이용하여 햄버거를 포장하고, 아홉 번째 재료가 쌓였을 때, 두 번째 재료와 일곱 번째 재료부터 아홉 번째 재료를 이용하여 햄버거를 포장합니다.

이 부분에서 문제 의도를 파악해야 한다.

 

접근법

1. 여섯 번째 재료가 쌓였을때 두번째 빵이 아닌 세번째 빵부터 포장을한다. (연달아 이어지는 재료로 포장해야한다.)

2. 햄버거 하나 포장후(세번째 ~ 여섯 번째) 두번째, 일곱 번째, 아홉번째, 열번째 재료를 이용하여 햄버거를 포장한다.

(포장한 재료들은 리스트에서 지우라는 뜻으로 해석했다.)

 

풀이 :

1. 리스트 생성

  • make_list : 재료들을 하나씩 담으면서 햄버거 포장이 가능한지를 확인할 리스트

2. ingredient의 원소 개수만큼 반복문을 진행하면서 make_listingredient 원소들을 하나씩 넣어준다.

3. make_list의 마지막 4개의 원소가 [1,2,3,1]일 경우 포장 가능하므로 answer + 1 해주고 포장한 재료들은 삭제해준다.

 

코드 :

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

 

728x90
반응형
Comments