본문 바로가기
알고리즘 & 자료구조/프로그래머스

햄버거 만들기

by 신재권 2022. 12. 23.
package programmers;

import java.util.Stack;

public class 햄버거만들기 {

   // 1,2,3,1{빵,야채,고기,빵}
   public static int solution(int[] ingredient) {
      int answer = 0;
      Stack<Integer> s = new Stack<>();

      for (int value : ingredient) {
         s.push(value);

         if (s.size() >= 4) {
            if (isHamburger(s)) {
               makeHamburger(s);
               answer++;
            }
         }
      }

      return answer;
   }

   private static void makeHamburger(Stack<Integer> s) {
      for (int i = 0; i < 4; i++) {
         s.pop();
      }
   }

   private static boolean isHamburger(Stack<Integer> s) {
      return s.get(s.size() - 4) == 1
         && s.get(s.size() - 3) == 2
         && s.get(s.size() - 2) == 3
         && s.get(s.size() - 1) == 1;
   }

   public static void main(String[] args) {
      System.out.println(solution(new int[] {2, 1, 1, 2, 3, 1, 2, 3, 1}));
      System.out.println(solution(new int[] {1, 3, 2, 1, 2, 1, 3, 1, 2}));
      System.out.println(solution(new int[] {1, 2, 1, 2, 3, 1, 3, 1, 2, 3, 1, 2, 3, 1}));
   }
}

'알고리즘 & 자료구조 > 프로그래머스' 카테고리의 다른 글

최대값과 최솟값  (0) 2022.12.25
크기가 작은 부분 문자열  (0) 2022.12.24
문자열 나누기  (1) 2022.12.22
옹알이 (2)  (0) 2022.12.21
기사단원의 무기  (0) 2022.12.20