function solution(fees, records) {
var answer = new Array();
var cars = new Object();
for (var i = 0; i < records.length; i++) {
var record = records[i].split(" ");
var name = record[1];
if (cars[name] === undefined) cars[name] = new Car();
if (record[2] == 'IN') {
cars[name].setIn(record[0]);
} else {
cars[name].setOut(record[0]);
}
}
var keys = Object.keys(cars).sort();
for (var i = 0; i < keys.length; i++) {
var value = cars[keys[i]];
if (value.out === '' || value.in > value.out) {
value.setOut('23:59');
}
var time = value.use;
var money = fees[1];
if (time > fees[0]) {
money += parseInt((time - fees[0]) / fees[2]) * fees[3];
if ((time - fees[0]) % fees[2] != 0) money += fees[3];
}
answer.push(money);
}
return answer;
}
class Car {
constructor () {
this.in = "";
this.out = "";
this.use = 0;
}
setIn = (time) => {
this.in = time;
}
setOut = (time) => {
this.out = time;
var itime = this.in.split(":");
var otime = this.out.split(":");
this.use += (parseInt(otime[0]) * 60 + parseInt(otime[1])) - (parseInt(itime[0]) * 60 + parseInt(itime[1]));
}
}
어찌된 영문인지 cars를 new Array()로 선언한 후 차 번호를 넣으면 문자열임에도 불구하고 숫자로 인식을 해서 배열이 만들어짐...
그래서 일단 여기서는 Object로 선언하여 작성했는데 잘 한건진 모르겠음
obj의 키 값을 가져오는 함수