https://programmers.co.kr/learn/courses/30/lessons/64063
python으로 할 때는 그냥 dictionary 자료형을 쓰면 시간초과가 뜨지 않았다. 그래서 js로 풀 때도 그냥 Object를 사용하여서 풀었는데 마지막 테스트케이스에서 시간 초과가 났다. object를 사용한 것을 Map 자료형을 써서 푸니깐 마지막 테스트 케이스에서 시간초과가 나지 않았다.
MDN을 보면 다음과 같은 Map과 Object의 차이를 적어놓았는데 아마 마지막 줄의 성능 차이에서 차이가 나지 않았나 싶다. 그리고 그 외에도 이점이 꽤 많은 것 같다.
function findRoom(number, rooms) {
if(!rooms.has(number)) {
rooms.set(number, number+1);
return number
}
let p = findRoom(rooms.get(number), rooms);
rooms.set(number, p + 1);
return p;
}
function solution(k, room_number) {
const answer = [];
const rooms = new Map();
let empty;
let length = room_number.length;
for(let i = 0; i < length; i++) {
empty = findRoom(room_number[i], rooms);
answer.push(empty);
}
return answer;
}