programmers- lv.1 (햄버거 만들기)

이예송·2023년 7월 17일

PS

목록 보기
45/97

문제링크: 햄버거 만들기

✍🏻 Information

content
언어python
난이도⭐️⭐️+0.5
풀이시간35분
제출횟수3
인터넷검색유무yes




🍒 My Code

def solution(ingredient):
    answer = 0
    _ingredient = [] #새로 담을 stack 비슷한 역할
    for i in ingredient:
        _ingredient.append(i)
        length = len(_ingredient)
        if length>=4: #햄버거가 만들어진다면 뽑기
            if _ingredient[-4:] == [1,2,3,1]:
                answer+=1
                del _ingredient[-4:]
    return answer
    




💡 What I learned

  • del list_name[idx] : list_name의 idx번째 인자 삭제
  • del list_name[start_idx:end_idx] : list_name의 start_idx부터 end_idx-1번째 인자를 삭제
  • list도 == 으로 비교할 수 있다는 것을 알았다.
  • 내 풀이를 좀 더 짧게 작성하면 아래와 같다.
def solution(ingredient):
    s = []
    cnt = 0
    for i in ingredient:
        s.append(i)
        if s[-4:] == [1, 2, 3, 1]:
            cnt += 1
            for i in range(4):
                s.pop()
    return cnt
  • 처음에 아래와 같이 풀이하였는데 시간초과가 났다. 그래서 stack을 이용한 풀이를 생각했는데 수정하다보니 살짝 바뀌어버렸다.
	answer = 0
    _ingredient=""
    for i in ingredient:
        _ingredient+=str(i)
    idx = 0
    while idx!=-1:
        idx = _ingredient.find("1231")
        if idx!=-1:
            answer+=1
            _ingredient = _ingredient.replace("1231","",1)

0개의 댓글