문제설명
열량이 적힌 식단표가 있습니다.
다이어트를 하는 A 씨는 오늘 먹는 열량이 그동안 먹은 식단의 열량 중 최솟값보다 큰 경우 운동을 하여 그 차이만큼을 소모합니다.
예를 들어, 식단의 열량이 [713, 665, 873, 500, 751]이라면 둘째 날까지는 운동을 하지 않습니다. 셋째 날 식단의 열량이 873이고 그 전의 먹은 열량의 최솟값이 665이므로 208 열량을 소모하기 위한 운동을 합니다. 넷째 날은 운동을 하지 않고 다섯째 날 식단의 열량이 751이고 그 전의 먹은 열량의 최솟값이 500이므로 251 열량을 소모하기 위한 운동을 합니다. 따라서 운동으로 소모하는 총열량은 459입니다.
식단의 열량을 담고 있는 리스트 calorie가 매개변수로 주어질 때, 운동으로 소모하는 총열량을 return 하도록 solution 함수를 작성했습니다. 그러나, 코드 일부분이 잘못되어있기 때문에, 몇몇 입력에 대해서는 올바르게 동작하지 않습니다. 주어진 코드에서 <U>**한 줄**</U>만 변경해서 모든 입력에 대해 올바르게 동작하도록 수정하세요.
매개변수 설명
식단의 열량을 담고 있는 리스트 calorie가 solution 함수의 매개변수로 주어집니다.
* calorie의 각 원소는 0보다 크고 1,000보다 작거나 같은 자연수입니다.
* calorie의 길이는 0보다 크고 100보다 작거나 같은 자연수입니다.
return 값 설명
운동으로 소모하는 총열량을 return 해주세요.
예시
| calorie | return |
|---------------------------|--------|
| [713, 665, 873, 500, 751] | 459 |
예시설명
문제의 예와 같습니다.
문제 코드
def solution(calorie):
min_cal = 0
answer = 0
for cal in calorie:
if cal > min_cal:
answer += cal - min_cal
min_cal = min(min_cal, cal)
return answer
풀이
def solution(calorie):
# 둘째날부터 그동안 먹은 식단의 열량 최소값과 비교
min_cal = calorie[0]
answer = 0
for cal in calorie:
if cal > min_cal:
answer += cal - min_cal
min_cal = min(min_cal, cal)
return answer
댓글