반응형
문제
https://www.acmicpc.net/problem/2979
풀이 과정
시간 별로 몇 대의 차가 주차되어 있는지 확인
( 입력으로 주어지는 시간은 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 |