2979번: 트럭 주차
첫째 줄에 문제에서 설명한 주차 요금 A, B, C가 주어진다. (1 ≤ C ≤ B ≤ A ≤ 100) 다음 세 개 줄에는 두 정수가 주어진다. 이 정수는 상근이가 가지고 있는 트럭이 주차장에 도착한 시간과 주차장�
www.acmicpc.net
이문제는 고정된 크기로 입력이 들어오기 때문에
배열의 크기나 입력등을 고정적으로 두었다.
문제에서 유의할점은
1대일때 1대당 A가격
2대일때 1대당 B가격(B*2)
3대일때 1대당 C가격(C*3)
으로 1대당 가격을 잘 생각해야한다.
그리고 시간이라는 것도 참고해야한다.(ex 1~6 = 5시간)
그래서입력으로 들어온 길이만큼 배열을 1로 바꾸고
다음 반복문에서 배열 0 1 2 에서 1인 원소의 개수를 알아낸다. = 동시간대에 차의 개수
그리고 그차에 개수만금 가격을 부여 총 가격이므로 위처럼 차 대수도 고려하면 된다.
#include <iostream>
using namespace std;
int g_nMap[3][100];
int main(void)
{
int A = 0;
int B = 0;
int C = 0;
int nMin = 0;
int nMax = 0;
int nStart = 0;
int nEnd = 0;
int nTmp = 0;
int nAns = 0;
cin >> A >> B >> C;
for(int i = 0; i < 3; i++)
{
cin >> nStart >> nEnd;
if(i == 0)
{
nMin = nStart;
nMax = nEnd;
}
else
{
if(nStart < nMin)
nMin = nStart;
if(nEnd > nMax)
nMax = nEnd;
}
for(int j = nStart; j < nEnd; j++)
{
g_nMap[i][j] = 1;
}
}
for(int i = nMin; i < nMax; i++)
{
nTmp = g_nMap[0][i] + g_nMap[1][i] + g_nMap[2][i];
if (nTmp == 1)
nAns += A;
else if(nTmp == 2)
nAns += B*2;
else if(nTmp == 3)
nAns += C*3;
}
cout << nAns << endl;
return 0;
}
'알고리즘' 카테고리의 다른 글
[백준 16953] A > B (2) | 2020.10.16 |
---|---|
[백준 11729] 하노이 탑 이동 순서 (0) | 2020.10.15 |
[백준 16504] 종이접기 (0) | 2020.10.14 |
[백준 1911] 흙길 보수하기 (0) | 2020.10.14 |
[백준 17938] 퐁당퐁당2 (0) | 2020.10.03 |