728x90
이해하기
햄버거가 쌓이는 모양을 생각하면 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;
}
}
'JAVA > Coding Test Study' 카테고리의 다른 글
[Lv.1] 프로그래머스 - 기사단원의 무기 : Java (0) | 2024.05.10 |
---|---|
[Lv.0] 프로그래머스 - 문자열 잘라서 정렬하기 : Java (0) | 2024.05.10 |
[Lv.1] 프로그래머스 - 성격 유형 검사하기 : Java (0) | 2024.05.10 |
[프로그래머스] 코딩 기초 트레이닝 Lv.0 클리어! (0) | 2024.04.30 |
[Lv.0] 프로그래머스 - 정수를 나선형으로 배치하기 : Java (0) | 2024.04.30 |