728x90
▶문제 : 코딩 테스트 연습 - 햄버거 만들기 | 프로그래머스 스쿨 (programmers.co.kr)
▶코드 작성
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
int stack[1000000];
int solution(int ingredient[], size_t ingredient_len) {
int answer = 0;
int size = 0;
for (int i = 0; i < ingredient_len; i++) {
stack[size++] = ingredient[i];
if (stack[size - 1] == 1 && size >= 4) {//1이 나왔을 때
if (stack[size - 4] == 1 && stack[size - 3] == 2 && stack[size - 2] == 3) {
//빵 - 야채 - 고기 - 빵 이라면
answer++;
size -= 4;//stack배열에서 제거
}
}
}
return answer;
}
▶해석
스택을 활용하여 풀어보았다.
ingredient배열을 for문으로 앞에서부터 하나씩 stack배열에 대입하였다.
대입한 값이 1일 때 빵-야채-고기-빵 순으로 1231 이므로 stack배열에 차례대로 들어가 있는지 확인하였다.
조건이 성립하면 stack배열의 크기인 size를 -4 해주어 다음 값(ingredient [i])이 그 자리에 들어가도록 하였다.
728x90
'프로그래머스 > C' 카테고리의 다른 글
프로그래머스 Level 2 : 숫자 카드 나누기 C언어 (0) | 2022.11.10 |
---|---|
프로그래머스 Level 2 : 야간 전술보행 C언어 (0) | 2022.10.31 |
프로그래머스 Level 1 : 옹알이 (2) C언어 (2) | 2022.10.29 |
프로그래머스 Level 1 : 숫자 짝꿍 C언어 (0) | 2022.10.28 |
프로그래머스 Level 1 : 콜라 문제 C언어 (0) | 2022.10.24 |
댓글