본문 바로가기

cospro2급/cospro_4차

2021-05-20

cospro 5번 문제

다이어트하는 A씨의 추가 운동 여부 알려주기

 

문제 설명

다이어트를 하는 A씨는 오늘 먹는 열량이 그동안 먹은 식단의 열량 중 최솟값보다 큰 경우 운동을 하여 그 차이만큼을 소모한다.

 

식단의 열량을 담고 있는 배열 calorie, calorie의 길이 calorie_len이 매개변수로 주어질 때, 운동으로 소모하는 총열량을 return 하는 solution 함수를 완성한다. 

 

매개변수 설명

식단의 열량을 담고 있는 배열 calorie, calorie의 길이 calorie_len이 매개변수로 주어진다.

   calorie의 각 원소는 0보다 크고 1000보다 작거나 같은 자연수이다.

   calorie_len은 0보다 크고 100보다 작거나 같은 자연수이다.

 

return 값 설명

운동으로 소모하는 총열량을 return 한다.

 

예시

 

예시 설명

식단의 열량이 [713, 665, 873, 500, 751]이라면 둘째 날까지는 운동을 하지 않는다. 셋째 날 식단의 열량이 873이고 그 전에 먹은 열량의 최솟값이 665이므로 208열량을 소모하기 위한 운동을 한다. 넷째 날은 운동을 하지 않고 다섯째 날 식단의 열량이 751이고 그 전에 먹은 열량의 최솟값이 500이므로 251 열량을 소모하기 위한 운동을 한다. 따라서 운동으로 소모하는 총열량은 459이다.

 

코드 설명

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>

int solution(int calorie[], int calorie_len) {
    int min_cal = calorie[0];	
    //최솟값과 오늘의 칼로리를 비교해야한다. 그러기 위해선 칼로리 중 하나를 초기값으로 잡아준다.
    int answer = 0;
    for(int i=0; i<calorie_len; i++) {
        if(calorie[i] > min_cal)	//최솟값 보다 큰 경우, 차이를 뺀다.
            answer += calorie[i] - min_cal;
        else
            min_cal = calorie[i];	//작다면 최솟값이 됨
    }
    return answer;

int main() {
    int calorie[] = {713, 665, 873, 500, 751};
    int ret = solution(calorie, 5);
    
    printf("solution 함수의 반환 값은 %d 입니다.\n", ret);
}

 

min_cal이 0이면 0과 오늘 먹은 열량을 비교하기 때문에 모든 식단의 열량과의 차이를 소모해야한다. 그래서 식단 중 하나를 최솟값으로 잡아서 다른 식단의 열량과 비교할 수 있게 한다.

 

 

 

goorm

구름은 클라우드 기술을 이용하여 누구나 코딩을 배우고, 실력을 평가하고, 소프트웨어를 개발할 수 있는 클라우드 소프트웨어 생태계입니다.

www.goorm.io

 

'cospro2급 > cospro_4차' 카테고리의 다른 글

2021-05-21  (0) 2021.05.21
2021-05-21  (0) 2021.05.21
2021-05-20  (0) 2021.05.20
201-05-19  (0) 2021.05.19
2021-05-19  (0) 2021.05.19