반응형
단순 구현 문제였습니다.
풀이방법
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';
}
'Algorithm > Implementation' 카테고리의 다른 글
(C++) - 백준(BOJ) 1713번 : 후보 추천하기 (0) | 2021.03.16 |
---|---|
(C++) - 백준(BOJ) 1592번 : 영식이와 친구들 (0) | 2021.03.16 |
(C++) - 프로그래머스(연습문제) : 제일 작은 수 제거하기 (0) | 2021.03.05 |
(C++) - 프로그래머스(연습문제) : 2016년 (0) | 2021.03.01 |
(C++) - 백준(BOJ) 11586번 : 지영 공주님의 마법 거울 답 (0) | 2021.02.09 |