https://www.acmicpc.net/problem/2979
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int a, b, c;
int arr[101];
int n, m;
int sum;
int main()
{
cin >> a >> b >> c;
for (int i = 0; i < 3; i++)
{
cin >> n >> m;
for (int j = n; j < m; j++)
{
arr[j]++;
}
}
for (int i = 0; i < 100; i++)
{
if (arr[i] == 1)
sum += a;
else if (arr[i] == 2)
sum += b*2;
else if (arr[i] == 3)
sum += c*3;
}
cout << sum << endl;
}
- 시작 시간부터 끝 시간까지 반복문을 돌려 배열에 값을 누적해준다
- 이런식으로 하면 겹치는 시간대를 index로 겹치는 차의 갯수가 저장된다
- 배열의 크기만큼 반복문을 통해 배열안에 값이 1,2,3인지 판단하여 주차한 차의 갯수당 내는 요금에 주차된 차의 갯수를 곱한 값을 누적해 더해주면 값을 구할 수 있다
'코딩 태스트 > 문제풀이' 카테고리의 다른 글
ROT13 (0) | 2025.01.10 |
---|---|
농구경기 (1) | 2025.01.10 |
팰린드롬인지 확인하기 (0) | 2025.01.10 |
알파벳 개수 (0) | 2025.01.10 |
일곱 난쟁이(x) (0) | 2025.01.10 |