문제 해결 전략
1. counting 배열을 이용하여 입력받는 start와 end까지 수를 증가시킴
2. 3대 밖에 없기 때문에 배열 값의 범위는 1 ~ 3인 것을 이용하여 분기문 작성
3. 문제에서 주어주는 시간은 1과 100 사이이기 때문에 그 동안에 트럭이 몇 대가 몇 분동안 있는 지 분기문을 통해 구하고 요금을 곱해준다.
#include <iostream>
using namespace std;
int truck[101] = {0,};
int main(void) {
int a, b, c;
cin >> a >> b >> c;
int start, end;
int result = 0;
for (int i = 0; i < 3; i++) {
cin >> start >> end;
for (int j = start; j < end; j++) { // 이상, 미만
truck[j]++;
}
}
for (int i = 1; i <= 100; i++) {
if (truck[i] == 1)
result += a;
else if (truck[i] == 2)
result += b * 2;
else if (truck[i] == 3)
result += c * 3;
else
continue;
}
cout << result << "\n";
}
소감
시간을 그림으로 그려서 트럭이 들어가있는 시간을 구하면 쉽게 풀 수 있는 문제였다.