햄버거 만들기

NJW·2023년 4월 6일
0

코테

목록 보기
147/170

문제 설명

햄버거 재료 리스트가 주어지는데, 빵-야채-고기-빵으로 들어오는 순서의 갯수를 정하라.

문제 풀이

첫 번째 접근

일단 스택을 사용해야 겠다고 생각했다. 문제에서 나와있듯이 숫자를 쌓아서 순서를 확인하는 거니까. 스택의 길이가 4 이상이면 햄버거 재료를 POP해서 순서에 맞는지 보고 만지 않으면 False를 반환, 전부 맞으면 True를 반환하는 함수를 작성했다. 여기서 만일 햄버거 순서와 맞지 않을 때 재료를 다시 넣어줘야 하므로 재료들을 임시 저장할 때는 tmp 리스트를 이용했다.

다른 사람의 풀이

나와 비슷하지만, 조금 다르게 푼 방법이 있었는데 그냥 재료 리스트의 뒤에서부터 위치를 찍어서 검사하는 거다. 아무래도 Python보다 Java를 더 많이 쓰던 터라, Python에서는 스택이 리스트와 결을 같이 한다는 것을 생각하지 못했다 구현은 리스트로 했으면서. 그래서 재료의 순서가 뒤에서부터 검사했을 때 1, 3, 2, 1이면 총 네 번 pop해주고 answer에 1을 더해줘도 된다.

코드

python

def solution(ingredient):
    answer = 0
    hambugers = []
    
    def check():
        count = 0
        right = [1, 3, 2, 1]
        tmp = []
        
        for i in range(4):
            current = hambugers.pop()
            tmp.append(current)
            
            if current != right[i]:
                # print(f"{current}에서 탈락")
                while len(tmp) != 0:
                    hambugers.append(tmp.pop())
                    
                return False
        
        return True
    
    
    for ingre in ingredient:
        hambugers.append(ingre)
        
        if len(hambugers) >= 4:
            if(check() == True):
                answer += 1
    
    return answer
profile
https://jiwonna52.tistory.com/

0개의 댓글