# 본인 풀이

#include <bits/stdc++.h>
using namespace std;

int main(){
    ios::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

    // a -> 1대 주차시 분당요금
    // b -> 2대 주차시 분당요금
    // c -> 3대 주차시 분당요금
    int arr[3];
    int A[2];
    int B[2];
    int C[2];
    int result[100] = { 0 };

    for (int i = 0; i < 3; i++)
    {
        cin >> arr[i];
    }

    for (int i = 0; i < 2; i++){
        cin >> A[i];
    }
    for (int i = 0; i < 2; i++){
        cin >> B[i];
    }
    for (int i = 0; i < 2; i++){
        cin >> C[i];
    }

    for (int i = A[0]; i < A[1]; i++){
        result[i]++;
    }

    for (int i = B[0]; i < B[1]; i++){
        result[i]++;
    }
    for (int i = C[0]; i < C[1]; i++){
        result[i]++;
    }

    int sum = 0;
    for (int val : result)
    {
        switch (val)
        {
        case 1:
            sum += arr[0];
            break;
        case 2:
            sum += arr[1] * 2;
            break;
        case 3:
            sum += arr[2] * 3;
            break;
        default:
            break;
        }
    }

    cout << sum << "\n";

    return 0;
}
  1. arr 배열에 각각 A, B, C 요금을 할당한다.
  2. 세줄에 걸쳐 입력받는 각 트럭의 주차 범위를 A,B,C 배열에 저장한다.
  3. 각 배열 최솟값(0번째 인덱스) ~ 최댓값(1번째 인덱스)까지 순회하며 result 배열 인덱스 값에 +1을 더해준다. 이는 해당 시간에 주차된 트럭 수를 저장하게 되는 것이다.
  4. result를 순회하며 최종 주차비용을 계산한다. 분당, 트럭 대수만큼 계산해야함에 주의하자. 트럭이 떠난 시간 또한 제외해야한다.

배열 0으로 초기화

배열 전체를 0으로 초기화하려면 int arr[100] = {0}; 이와 같이 코드를 작성하면 된다.

# 개선된 코드

  1. 입출력에 대한 어색함으로 A,B,C 행렬들을 마련했는데, 굳이 그럴 필요 없었음.
  2. cin 개행문자는 공백 기준으로도 자동 입력해준다.
#include <bits/stdc++.h>
using namespace std;
int A, B, C, a, b, cnt[104], ret;
int main()
{
    ios::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

    cin >> A >> B >> C;
    for (int i = 0; i < 3; i++)
    {
        cin >> a >> b;
        for (int j = a; j < b; j++){
            cnt[j]++;
        }
    }

    for (int j = 1; j < 100; j++){
        if(cnt[j]){
            if(cnt[j] == 1){
                ret += A;
            }else if(cnt[j] == 2){
                ret += B * 2;
            }else if(cnt[j] == 3){
                ret += C * 3;
            }
        }
    }
    cout << ret << "\n";

    return 0;
}