본문 바로가기
프로그래머스/C

[프로그래머스/C]프로그래머스 Level 1 : 햄버거 만들기 C언어

by starfish22 2022. 10. 29.
728x90

▶문제 : 코딩 테스트 연습 - 햄버거 만들기 | 프로그래머스 스쿨 (programmers.co.kr)

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

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

댓글