[Programmers] Lv1 햄버거 만들기 Java
2023. 2. 4. 17:51ㆍCS/자료구조 & 알고리즘
728x90
문제 출처
[프로그래머스 코딩 테스트 연습]
https://school.programmers.co.kr/learn/courses/30/lessons/133502
문제 풀이
이 문제는 스택을 이용한다면 쉽다.
다음은 스택에 쌓이는 과정을 그림으로 그린것이다.
그림을 보면 알듯이 검사에 성공을 한다면 next index를 변경함에 따라 이전에 쓰여있던것은 무시하는 게 가능해진다.
여기서는 stack을 pop 즉 꺼냈을때를 index로 변경하는 것으로 했다고 볼 수 있다.
소스 코드
public class Solution {
public boolean isHamburger(int[] stack, int i) {
return stack[i - 1] == 1 && stack[i - 2] == 3 && stack[i - 3] == 2 && stack[i - 4] == 1;
}
public int solution(int[] ingredient) {
int[] stack = new int[ingredient.length];
int count = 0;
int index = 0;
for (int i : ingredient) {
stack[index++] = i;
if (index >= 4 && isHamburger(stack, index)) {
index -= 4;
count++;
}
}
return count;
}
}
728x90
'CS > 자료구조 & 알고리즘' 카테고리의 다른 글
[Programmers] Lv1 성격 유형 검사하기 Java (0) | 2023.02.06 |
---|---|
[Programmers] Lv1 문자열을 정수로 만들기 Java (0) | 2023.02.05 |
[Programmers] Lv1 둘만의 암호 Java (0) | 2023.02.03 |
[Programmers] Lv1 개인정보 수집 유효기간 Java (0) | 2023.02.03 |
[Programmers] Lv0 치킨 쿠폰 Java (0) | 2023.02.02 |