728x90
반응형
  • 문제

상근이는 트럭을 총 세 대 가지고 있다. 오늘은 트럭을 주차하는데 비용이 얼마나 필요한지 알아보려고 한다.

상근이가 이용하는 주차장은 주차하는 트럭의 수에 따라서 주차 요금을 할인해 준다.

트럭을 한 대 주차할 때는 1분에 한 대당 A원을 내야 한다. 두 대를 주차할 때는 1분에 한 대당 B원, 세 대를 주차할 때는 1분에 한 대당 C원을 내야 한다.

A, B, C가 주어지고, 상근이의 트럭이 주차장에 주차된 시간이 주어졌을 때, 주차 요금으로 얼마를 내야 하는지 구하는 프로그램을 작성하시오.

  • 입력

첫째 줄에 문제에서 설명한 주차 요금 A, B, C가 주어진다. (1 ≤ C ≤ B ≤ A ≤ 100)

다음 세 개 줄에는 두 정수가 주어진다. 이 정수는 상근이가 가지고 있는 트럭이 주차장에 도착한 시간과 주차장에서 떠난 시간이다. 도착한 시간은 항상 떠난 시간보다 앞선다. 입력으로 주어지는 시간은 1과 100사이 이다.

  • 출력

첫째 줄에 상근이가 내야하는 주차 요금을 출력한다.

  • 예제 입력

1번

5 3 1
1 6
3 5
2 8

2번

10 8 6
15 30
25 50
70 80
  • 예제 출력

1번

33

2번

480
  • 접근방식

총합이 1 → A, 2 → B, 3 → C

배열에 카운팅 하는 방식

시각은 이상(시작), 미만(끝)임 

  • 코드

 

#include <iostream>
#include <algorithm>

using namespace std;

int A, B, C, a, b, ret;
int cnt[104];

int main() 
{
	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 i = 1; i < 100; i++)
	{
		if (cnt[i])
		{
			if (cnt[i] == 1)
				ret += A;
			else if (cnt[i] == 2)
				ret += B * 2;
			else if (cnt[i] == 3)
				ret += C * 3;
		}
	}
	cout << ret;
	return 0;
}

 

 

2979번: 트럭 주차

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

www.acmicpc.net

 

728x90
반응형

'C++ > BOJ' 카테고리의 다른 글

[C++]/백준 11655 ROT13  (0) 2023.01.12
[C++]/백준 1159번 농구 경기  (0) 2023.01.12
[C++]/백준 10988번 펠린드롬인지 확인하기  (0) 2023.01.12
[C++]/백준 10808번 알파벳 개수  (0) 2023.01.12
[C++]/백준 2309번 일곱 난쟁이  (1) 2023.01.12

+ Recent posts