문제
코드
function solution(book_time) {
const ans = [];
book_time.sort();
const books = book_time.map(([start, end]) => {
const sTime = start.split(':'), eTime= end.split(':');
return [sTime[0]*60 + +sTime[1], eTime[0]*60 + +eTime[1]];
})
ans.push(books[0][1]);
for(let i=1; i<books.length; i++) {
ans.sort((a, b) => a-b);
if(ans[0]+10 <= books[i][0]) ans[0] = books[i][1];
else ans.push(books[i][1]);
}
return ans.length;
}
시간 단위 통일의 중요성
- 시간 문제가 나오면 가장 낮은 단위로 통일 하는게 좋다.
- 나는 저기서 뻘짓 한다고 split으로 나누고 각각 계산해서 다시 넣어주고 뭐 암튼 그래서 다 틀렸다는 후문이..
ans에 종료 시간만 넣어주고 sort
- 나는 ans에 값을 넣어주고 계산할 때마다
sort
를 해줬다.
- 다음 예약 시작시간보다 ans의 맨 앞 시간이 크다면 새로운 방에 넣어야 하니까 위처럼 공식을 써줬다.