-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathKAKAO 주차요금계산.cpp
More file actions
66 lines (61 loc) · 1.74 KB
/
KAKAO 주차요금계산.cpp
File metadata and controls
66 lines (61 loc) · 1.74 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include <string>
#include <vector>
#include <iostream>
#include <sstream>
#include <map>
using namespace std;
map<int,int>IN;
map<int,int> money;
int math(int in,int baset,int basem,int overt,int overm){
int mid = in;
if(mid<=baset){
return basem;
}else{
int sum = basem;
mid -=baset;
mid+=+overt-1;
mid=mid/overt;
sum+=mid*overm;
return sum;
}
}
vector<int> solution(vector<int> fees, vector<string> records) {
vector<int> answer;
string s2;
int h,min,num;
char c;
for(int i=0;i<records.size();i++){
istringstream iss(records[i]);
iss>>h>>c>>min>>num>>s2;
int minut=h*60+min;
if(IN.find(num)==IN.end()){
IN.insert(make_pair(num,minut));
}else{
money[num]+=minut-IN[num];
IN.erase(num);
// if(s2=="IN"){
// int M=23*60+59;
// int Mon=math(IN[num],M,fees[0],fees[1],fees[2],fees[3]);
// money[num]+=Mon;
// printf("%d %d\n",num,Mon);
// IN.erase(num);
// IN.insert(make_pair(num,minut));
// }else{
// int Mon = math(IN[num],minut,fees[0],fees[1],fees[2],fees[3]);
// money[num]+=Mon;
// printf("%d %d\n",num,Mon);
// IN.erase(num);
// }
}
}
int M=23*60+59;
map<int,int>::iterator iter;
for(iter=IN.begin();iter!=IN.end();iter++){
money[iter->first]+=M-iter->second;
}
for(iter=money.begin();iter!=money.end();iter++){
int Mon=math(iter->second,fees[0],fees[1],fees[2],fees[3]);
answer.push_back(Mon);
}
return answer;
}