- 코드
- #include <iostream>
#include <vector>
#include <queue>
#include <deque>
#include <algorithm>
#include <string>
using namespace std;
int main() {
int n = 0;
int m = 0;
int parkingsp[101]={0};
int parkingcst[101];
queue <int> car;
vector <int> carwt;
cin >> n >> m;
for (int i = 0; i < n; i++) {
cin >> parkingcst[i + 1];
}
carwt.push_back(-1);
int weight = 0;
for (int i = 0; i < m; i++) {
cin >> weight;
carwt.push_back(weight);
}
int in = 0;
int cnt = m*2-1;
cin >> in;
parkingsp[1] = in;
int flag = 0;
int sum = 0;
while (cnt!=0) {
string inout;
cin >> inout;
flag = 0;
if (inout[0] != '-') {
cnt--;
for (int i = 1; i < n + 1; i++) {
if (parkingsp[i] == 0) {
parkingsp[i] = stoi(inout);
flag = 1;
break;
}
}
if (flag == 0) {
car.push(stoi(inout));
}
}
else if (inout[0] == '-') {
cnt--;
int out=stoi(inout.substr(1));
for (int i = 1; i < n + 1; i++) {
if (parkingsp[i] == out)
{
sum += carwt[out] * parkingcst[i];
parkingsp[i] = 0;
break;
}
}
if (!car.empty()) {
for (int i = 1; i < n + 1; i++) {
if (parkingsp[i] == 0) {
parkingsp[i] = car.front();
car.pop();
}
}
}
}
}
cout << sum << '\n';
} - 설명
- queue와 반복문, 배열을 적절히 사용해야 하는 문제였다. queue에는 대기하는 차를 삽입하고 뻈다. 배열에는 차의 무게와 주차장의 비용을 저장해서 반복문에서 참조했다.
'Koala - 12기 > 코딩테스트 준비 스터디' 카테고리의 다른 글
[백준/Python3] 29687번 : Игра (2) | 2023.11.20 |
---|---|
[백준/Python] 21736번 : 헌내기는 친구가 필요해 (1) | 2023.11.20 |
[백준/C++] 5464번 주차장 (0) | 2023.11.18 |
[백준python] 5464번: 주차장 (0) | 2023.11.15 |
[백준/Python] 1446번 : 지름길 (1) | 2023.11.13 |