❔문제
🔄 문제 및 입출력 조건 파악
- 트럭은 총 3개
- 입력
- 1 ≤ 시간 ≤ 100
- (도착시간) (떠나는시간) 순으로, (도착시간) < (떠나는시간)
✏️ 문제풀이
- 시간 `t`일 때, 주차장에 차량이 몇 대있는지 정보를 담고있는 배열 `t`을 만듭니다.
- `(도착시간) (떠나는시간)`을 입력받았을 때, 배열 `t`는 `t[도착시간]`부터 `t[떠나는시간 - 1]`까지 1 증가합니다.
- 떠나는 시간은 해당 차량이 주차장을 이용하는 시간이 아니므로, 포함해서는 안 됩니다.
- 따라서 요금을 계산할 때 고려해야할 범위는 【도착시간, 떠나는시간) 입니다.
- 요금을 계산할 때 현재 주차장에 있는 차량 수를 놓치면 안 됩니다. (한 대: A원 / 분, 두 대: 2 × B원 / 분, 세 대: 3 × C원 / 분)
📝 코드
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr);
int a, b, c;
cin >> a >> b >> c;
array<int, 101> t = {0,};
for (int i = 0; i < 3; ++i) {
int s, e;
cin >> s >> e;
while (s < e) t[s++] += 1;
}
int price{0};
for (auto it = t.begin(); it != t.end(); ++it) {
switch(*it) {
case 1: price += a; break;
case 2: price += (2 * b); break;
case 3: price += (3 * c); break;
}
}
cout << price << '\n';
}
🕧 결과
'Problem Solving' 카테고리의 다른 글
알고리즘 :: 백준 :: 11655 - ROT13 (0) | 2025.01.07 |
---|---|
알고리즘 :: 백준 :: 1159 - 농구 경기 (0) | 2025.01.07 |
알고리즘 :: 백준 :: 10988 - 팰린드롬인지 확인하기 (0) | 2025.01.07 |
알고리즘 :: 백준 :: 10808 - 알파벳 개수 (0) | 2025.01.07 |
알고리즘 :: 백준 :: 2309 - 일곱 난쟁이 (0) | 2025.01.07 |