문제
트럭이 주차장에 1대일 때는 A원, 2대일 때는 B원, 3대일 때는 C원이며 트럭이 1~100분 사이에 임의의 시간에 주차되었을 때 총 주차 가격이 얼마인지 계산하는 문제이다.
풀이
첫 번째 접근: 1~100분이라는 명시적인 기준이 있기 때문에 이를 배열로 표현하여 각 분별로 차량이 몇 대 주차되어있는지 체크합니다.
두 번째 접근: 시간이 1분~6분이 주어질 때 차량이 주차한 시간은 5분입니다. 즉, 이상 미만을 기준으로 잡고 계산을 해야합니다.
세 번째 접근: 1~100분이라는 카운팅 배열에는 주차되어있는 수가 카운트 되어 있습니다. 1대일때는 a가격, 2대 일때는 b가격, 3대 일때는 c가격을 각각 곱해서 총합을 내줍니다.
코드
#include <iostream>
using namespace std;
int arr[105];
int main()
{
int a, b, c;
cin >> a >> b >> c;
for(int i = 0; i < 3; i++){
int start = 0, end = 0;
cin >> start >> end;
for(int j = start; j < end; j++){
arr[j]++;
}
}
int sum = 0;
for(int i = 0; i < 105; i ++){
if(arr[i] == 1)
sum += arr[i] * a;
else if(arr[i] == 2)
sum += arr[i] * b;
else if(arr[i] == 3)
sum += arr[i] * c;
}
cout << sum;
}