[Programmers] Lv1 햄버거 만들기 Java
2023. 2. 4. 17:51ㆍCS/자료구조 & 알고리즘
728x90
문제 출처
[프로그래머스 코딩 테스트 연습]
https://school.programmers.co.kr/learn/courses/30/lessons/133502
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 풀이
이 문제는 스택을 이용한다면 쉽다.
다음은 스택에 쌓이는 과정을 그림으로 그린것이다.
그림을 보면 알듯이 검사에 성공을 한다면 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 |