문제풀이/DataStructure

[PS] 프로그래머스 햄버거만들기 ( 자료구조 ) with JAVA

IT록흐 2024. 4. 9. 16:04
반응형

 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

◎ 문제풀이

 

재료들이 배열에 차례대로 저장되어 있다. 햄버거를 만드는 패턴과 일치하는 케이스를 카운트 하면 된다. 배열에 저장되어 있는 재료들을 가장 왼쪽부터 차례대로 자료구조에 담으면서, 빵-야채-고기-빵 차례로 데이터가 나열되는지를 체크하면 된다. 자료구조는 리스트를 사용하였고 리스트에서 만들어진 햄버거 재료를 제거할 때, size가 가변적으로 변하니 인덱스 사용에 주의해야 한다. 

 

 

◎ 코드

 

import java.util.*;

class Solution {
    
    
    public int solution(int[] ingredient) {
        
        int answer = 0;
        LinkedList<Integer> list = new LinkedList<>();
        
        for(int value : ingredient){
            list.add(value);
            
            if(list.size() >= 4){
                int idx = list.size()-1;
                if(list.get(idx)==1&&list.get(idx-1)==3&&list.get(idx-2)==2&&list.get(idx-3)==1){
                    answer++;
                    for(int i=9;i>4;i++){
                        list.remove(list.size()-1); // remove 할때 마다 size가 가변적으로 변한다.
                    }
                }
            }
        }
        
        return answer;
    }
}
반응형