개발/알고리즘

백준 2979 트럭 주차 C++

daisy-day 2021. 1. 3. 17:44

문제

2979번: 트럭 주차 (acmicpc.net)

 

2979번: 트럭 주차

첫째 줄에 문제에서 설명한 주차 요금 A, B, C가 주어진다. (1 ≤ C ≤ B ≤ A ≤ 100) 다음 세 개 줄에는 두 정수가 주어진다. 이 정수는 상근이가 가지고 있는 트럭이 주차장에 도착한 시간과 주차장

www.acmicpc.net

코드

#include<bits/stdc++.h>

using namespace std;

int truckCount[101];
int a, b, c, startTime, endTime;

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

	cin >> a >> b >> c;

	for (int i = 1; i <= 3; i++)
	{
		cin >> startTime >> endTime;
		for (int j = startTime; j < endTime; j++)
		{
			truckCount[j]++;
		}
	}

	int cost = 0;
	for (int i = 1; i < 100; i++)
	{
		if (truckCount[i] == 0)
			continue;
		else if (truckCount[i] == 1)
		{
			cost += a;
		}
		else if (truckCount[i] == 2)
		{
			cost += 2 * b;
		}
		else if (truckCount[i] == 3)
		{
			cost += 3 * c;
		}
		else
			continue;
	}

	cout << cost;

	return 0;
}

cost 구할 때 예외처리를 아래와 같이 하면 더 깔끔하다.

for (int i = 1; i < 100; i++)
{
	if (truckCount[i])
    {
    	if (truckCount[i] == 1)
		{
        	cost += a;
		}
		else if (truckCount[i] == 2)
		{
			cost += 2 * b;
		}
		else if (truckCount[i] == 3)
		{
			cost += 3 * c;
		}
	}
}

 

걸린 시간

30분