문제
풀이
function solution(book_time) {
const rooms = [];
const newTime = book_time.map(([s,e])=>{
const [sh,sm] = s.split(':').map(str=>Number(str));
const [eh,em] = e.split(':').map(str=>Number(str));
return [sh * 60 + sm , eh * 60 + em + 10];
})
newTime.sort((a,b)=>a[0] - b[0]);
newTime.forEach(([st,et])=>{
if(Math.min(...rooms) > st){
rooms.push(et);
}
else{
const minIdx = rooms.indexOf(Math.min(...rooms));
rooms.splice(minIdx,1,et);
}
})
return rooms.length;
}
러닝 포인트
- Math.min()의 인자가 비어있을 경우 리턴값은 Infinity
- 문제가 이중 배열이라고 문제도 이중 배열로 풀 필요는 없음. 최대한 간단한 방법을 생각해내기.
- 구조분해할당 잘 써먹기.
- 오름차순 정렬 활용 잘하삼.