코딩테스트 연습 - 호텔 대실 | 프로그래머스 스쿨 (programmers.co.kr)
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
알고리즘 : 구현
function solution(book_time) {
// 데이터 정렬
for (let i = 0; i < book_time.length; i++) {
book_time[i] = book_time[i].map((v) => v.split(":").map((val) => +val));
}
// 시간순으로 정렬
book_time.sort((a, b) => {
if (a[0][0] === b[0][0]) return a[0][1] - b[0][1];
return a[0][0] - b[0][0];
});
// room을 지정하면서 확인
let room = [];
for (let i = 0; i < book_time.length; i++) {
let temp = book_time[i];
if (temp[1][1] >= 50) {
temp[1][0] += 1;
temp[1][1] -= 50;
} else {
temp[1][1] +=10;
}
// 방이 비었을때
if (!room.length) room.push(temp);
else {
// 방이 안비었는데 미리 들어간 사람이 있을때
let idx = room.findIndex((v) => {
return v[1][0] < temp[0][0] || (v[1][0] === temp[0][0] && v[1][1] <= temp[0][1]);
});
if (idx !== -1) {
// 입실 가능
room[idx] = temp;
} else {
// 입실 불가능
room.push(temp);
}
}
}
console.log(room);
return room.length;
}
'코딩테스트(알고리즘) > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 뒤에 있는 큰 수 찾기 (Javascript) (0) | 2023.02.09 |
---|---|
[프로그래머스] 무인도 여행 (Javascript) (0) | 2023.02.09 |
[프로그래머스] 2 x n 타일링 (Javascript) (0) | 2023.02.07 |
[프로그래머스] 게임 맵 최단거리(Javascript) (0) | 2023.02.07 |
[프로그래머스] 괄호 변환 (Javascript) (0) | 2022.07.01 |