Dazzling 개발 노트

[프로그래머스] 햄버거 만들기 (Java) 본문

Algorithm/프로그래머스

[프로그래머스] 햄버거 만들기 (Java)

dj._.dazzling 2024. 4. 14. 10:30

[프로그래머스] 햄버거 만들기 (Java)

문제

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

풀이/후기

Stack으로 풀지 List로 풀지 고민하다가 결국 List로 해결했다.

연속된 것을 판단할 때, 꼭 반복문의 조건으로 이전 값을 탐색하지 않아도 

i+1, i+2, i+3을 통해 한 번에 조회할 수 있는 방법을 습득했다.(?)

코드

import java.util.*;

class Solution {
    public int solution(int[] ingredient) {
        int answer = 0;
        
        List<Integer> list = new LinkedList<>();
        
        for (int i : ingredient){
            list.add(i);
            while (list.size() >= 4){
                int size = list.size();
                if ( !(list.get(size-1) == 1 && list.get(size-2) == 3 && list.get(size-3) == 2 && list.get(size-4) == 1 )) break;
                
                for (int j=0; j<4; j++){
                    list.remove(list.size() - 1);
                }
                answer++;
            }
        }
        
        return answer;
    }
}

Commit

https://github.com/allrightDJ0108/CodingTestStudy/commit/ab556b1ffe4ad533818aedc9c0587618159e10a6

참고

https://velog.io/@e-7281998/%ED%96%84%EB%B2%84%EA%B1%B0-%EB%A7%8C%EB%93%A4%EA%B8%B0