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과 오늘 먹은 열량을 비교하기 때문에 모든 식단의 열량과의 차이를 소모해야한다. 그래서 식단 중 하나를 최솟값으로 잡아서 다른 식단의 열량과 비교할 수 있게 한다.
'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 |