반응형

문제

https://www.acmicpc.net/problem/2979

 

2979번: 트럭 주차

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

www.acmicpc.net

풀이 과정

시간 별로 몇 대의 차가 주차되어 있는지 확인

( 입력으로 주어지는 시간은 1과 100사이 이다. → 100개의 배열이 필요하다. )

 

예제를 보면 

5 3 1	// A B C
1 6		
3 5
2 8
  1 2 3 4 5 6 7 8 .........
첫째 차        
두번째 차              
세번째 차    
총 차 갯수 1 2 3 3 2 1 1 1  
1 * A 2 * B 3 * C 3 * C 2 * B 1 * A 1 * A 1 * A  

이렇게 될 수 있다.

33

이것을 계산하면 33 이라는 숫자가 나오게 된다.

코드

#include <iostream>

using namespace std;

int main()
{
	int cnt[100]{};	// 카운트를 위한 배열
	int result = 0;	// 결과값
	int A, B, C;	// 각 주차 대당 값
	cin >> A >> B >> C;
	for (int i = 0; i < 3; ++i)
	{
		int a, b;
		cin >> a >> b;
		for (int j = a; j < b; ++j)
			cnt[j] += 1;
	}
	for (int i = 0; i < 100; ++i)
	{
		if (cnt[i] > 0)
		{
			if (cnt[i] == 1) result += A;
			else if (cnt[i] == 2) result += B * 2;
			else if (cnt[i] == 3) result += C * 3;
		}
	}

	cout << result << endl;
	return 0;
}

풀이

1. 각 주차 대당 값을 입력받고 차마다 주차 시간을 입력받는다.

2. 시간 별로 카운팅을 해준다.

3. 카운팅되어 있는 차 대당 가격을 더해준다.

후기

단순하게 생각하면 정말 쉽게 풀 수 있는 문제였다.

반응형

'Etc > Algorithm' 카테고리의 다른 글

[BOJ] 2559 수열  (0) 2022.07.17
[BOJ]9996번 한국이 그리울 땐 서버에 접속하지  (0) 2022.07.14
[BOJ]11655번 ROT13  (0) 2022.07.14
[BOJ]10808-알파벳 개수  (0) 2022.07.12
[BOJ]2309-일곱 난쟁이  (0) 2022.07.11

+ Recent posts