햄버거 만들기 - 프로그래머스(자바)

강신찬·2023년 11월 23일
0
import java.util.*;

class Solution {
    public int solution(int[] ingredient) {
        int answer = 0;
        Stack<Integer> stack = new Stack<>();
        for(int i =0; i<ingredient.length; i++) {
            stack.add(ingredient[i]);
            while(stack.size() > 3) {
                int[] intArr = new int[4];
                intArr[3] = stack.pop();
                intArr[2] = stack.pop();
                intArr[1] = stack.pop();
                intArr[0] = stack.pop();
                
                if(intArr[3] == 1 && intArr[2] == 3 && intArr[1] == 2 && intArr[0] == 1) {
                    answer ++;
                }else {
                    stack.add(intArr[0]);
                    stack.add(intArr[1]);
                    stack.add(intArr[2]);
                    stack.add(intArr[3]);
                    break;
                }
            }
        }
        return answer;
    }
}
  • 1레벨 후반대부터는 문제가 어려울까봐 문제를 읽기전부터 겁을 내지만 일단 일어보고 겁내자 하고 읽었는데 음.. 쉽겠는데? 라고 생각이 들었다.
  • 실제로 쉽게 풀었는데 점수는 3점이라는 기분좋은 결과
  • 넣었다가 뺀다 라는 곳에서 스택을 써야겠다고 판단했고 햄버거를 만든후 다시 정렬해서 검사한다는 부분이 포인트라고 생각했다.
  • 반복문을 돌려서 햄버거가 안되면 탈출하게 하고 아니라면 계속해서 뒤에서부터 꺼내서 햄버거를 만들어보는 로직을 구현했다.
  • 햄버거 속에 들어가는 종류가 많아진다면 속에 작업들을 반복문으로 처리하면 된다. (속도의 이슈가 있겠지만) 끝.
profile
꾸준히 공부하는 풀스텍 개발자

0개의 댓글