JAVA/Coding Test Study
[Lv.1] 프로그래머스 - 햄버거 만들기 : Java
♡˖GYURI˖♡
2024. 5. 10. 19:33
728x90
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr

이해하기
햄버거가 쌓이는 모양을 생각하면 stack을 사용해야 하는 것까지는 떠올릴 수 있는데, 구현이 항상 어렵다.
- ingredient의 값을 하나씩 가져와서 일단 stack에 push
- 만약 stack의 사이즈가 4보다 크거나 같아지면 들어있는 값을 확인해서 햄버거 순서대로 쌓였는지 확인
- 햄버거 순서는 위에서부터 1 - 3 - 2 - 1
- stack.get(stack.size() -1)이 1이고
- stack.get(stack.size() -2)이 3이고
- stack.get(stack.size() -3)이 2이고
- stack.get(stack.size() -4)이 1이면
- 햄버거 하나를 만들 수 있으니 answer++
- 4개만큼 pop해주기
- 햄버거 순서는 위에서부터 1 - 3 - 2 - 1
문제풀이
import java.util.*;
class Solution {
public int solution(int[] ingredient) {
int answer = 0;
Stack<Integer> stack = new Stack<>();
for (int n : ingredient) {
stack.push(n);
if (stack.size() >= 4) {
if (stack.get(stack.size() - 1) == 1 &&
stack.get(stack.size() - 2) == 3 &&
stack.get(stack.size() - 3) == 2 &&
stack.get(stack.size() - 4) == 1) {
answer++;
stack.pop();
stack.pop();
stack.pop();
stack.pop();
}
}
}
return answer;
}
}