본문 바로가기

Algorithm/Implementation

(C++) - 백준(BOJ) 2979번 : 트럭 주차

반응형

www.acmicpc.net/problem/2979

 

2979번: 트럭 주차

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

www.acmicpc.net

단순 구현 문제였습니다.

 

풀이방법

 1. i분에 주차된 트럭의 수를 저장할 배열 t를 선언합니다.

 2. 도착시간, 떠나는 시간이 각각 주어졌을 때 해당시간을 시작시간, 끝 시간으로 두어 loop를 돕니다. 시간시간 이상 끝 시간 미만까지 t[i]++합니다.

 3. 다시 전체 시간까지 돌며 t[i] == 1이라면 해당 시간의 트럭의 수가 1개이므로 t[i] * a요금, t[i] == 2라면 트럭의 수가 2이므로 t[i] * b요금, t[i] == 3인 경우 t[i] * c요금을 정답 변수에 더해줍니다.

 4. 정답을 출력합니다.

 

Code

#include <bits/stdc++.h>
using namespace std;
int a,b,c,ans=0;
int t[101];
int main(){
    cin >> a >> b >> c;
    for(int i = 0; i < 3; i++){
        int s,e;
        cin >> s >> e;
        for(int j = s; j < e; j++) t[j]++;
    }
    for(int i = 1; i <= 100; i++){
        if(t[i]==1) ans+= t[i] * a;
        else if(t[i]==2) ans+= t[i] *b;
        else ans+= t[i] * c;
    }
    cout << ans <<'\n';
}