풀이.
이 문제는 Stack을 사용하면 쉽게 풀 수 있는? 문제
일단 stack 에 ingredient배열을 돌면서 첫번째 요소부터 차례로 push
이후 stack 요소의 갯수가 4이상일 때 들어오는 숫자가 1(빵)이라면
stack.get메서드를 사용해 재료 순서인 1, 2, 3, 1이 맞는지 확인
맞으면 answer++ 해주고 재료비우기
그다음엔 또 push 반복해서 또 다음 조건에 만족하면 반복
아니면 그냥 push...
결국 배열을 끝까지 돌기도 하고 햄버거 완성갯수에 따라 inner for문이 반복되어
숫자가 커질수록 오래 걸리는 감이 있다.
import java.util.Stack;
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 && n == 1) {
if (stack.get(stack.size() - 4) == 1
&& stack.get(stack.size() - 3) == 2
&& stack.get(stack.size() - 2) == 3
&& stack.get(stack.size() - 1) == 1
) {
answer++;
for (int i = 0; i < 4; i++) {
stack.pop();
}
}
}
}
return answer;
}
}
문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/133502?language=java
'CODING TEST' 카테고리의 다른 글
프로그래머스 - 숫자 짝꿍 (0) | 2023.08.11 |
---|---|
프로그래머스 - 대충 만든 자판 (0) | 2023.08.10 |
프로그래머스 - 다항식 더하기 (0) | 2023.08.01 |
프로그래머스 - 달리기 경주 (0) | 2023.07.28 |
프로그래머스 고득점 Kit - 스택/큐 프로세스 (0) | 2023.07.22 |