2019 카카오 개발자 겨울 인턴십
2024. 3. 7. 17:51ㆍ개발/코딩테스트
반응형
function solution(k, room_number) {
var answer = [];
var room = []
for (i= 0 ; i< k+1; i++){
room.push(false)
}
//요청 중 가장 작은 방
let min = k
// 그 이후 사용 가능한방
let max = 0
room_number.map(i => {
if(room[i-1] == false){
answer.push(i)
room[i-1] = true
} else {
let j = i
if(i > min && i < max){
j = max
}
while(true){
if(room[j]){
j++
if(j >= min && j < max ){
j = max
i = min
}
} else {
answer.push(j+1)
room[j] = true
min = i
max = j
break
}
}
}
})
return answer;
}
function solution(k, room_number) {
var answer = [];
let room = {}
for (i=1; i < k + 1 ; i ++){
room[i] = false
}
let min = k
let max = 0
room_number.forEach(i => {
if(room[i]){
let j = i
if(j>=min && j<=max ){
j = max
}
while(true){
if(room[j]) {
j++
} else {
room[j] = true
answer.push(j)
min = i
max = j
break
}
}
min = Math.min(i,min)
} else {
room[i] = true
answer.push(i)
}
})
return answer;
}
function solution(k, room_number) {
var answer = [];
let room = {}
room_number.map(i => {
if(i in room){
let next = room[i]
let temp = [i]
while (true){
if(!(next in room)){
room[next] = next +1
answer.push(next)
break
}
temp.push(next)
next= room[next]
}
temp.forEach(i => {
room[i] = next+1
})
} else{
answer.push(i)
room[i] = i +1
}
})
return answer
}
function find(x, rooms) {
if(!(x in rooms)) {
rooms[x] = x + 1;
return x;
}
return rooms[x] = find(rooms[x], rooms);
}
function solution(k, room_number) {
let answer = [];
let rooms = {};
room_number.forEach(x => {
let emptyRoom = find(x, rooms);
answer.push(emptyRoom);
});
return answer;
}
function solution(k, room_number) {
const answer = [];
const room = new Map(); // 빠른 검색을 위해 Map 사용
// 다음 사용 가능한 방을 찾는 함수
function findNext(roomNumber) {
// 방이 사용 가능하면 반환
if (!room.has(roomNumber)) {
return roomNumber;
}
// 재귀적으로 다음 사용 가능한 방 찾기
return room.set(roomNumber, findNext(room.get(roomNumber))).get(roomNumber);
}
room_number.forEach(i => {
const next = findNext(i); // 다음 사용 가능한 방 찾기
answer.push(next); // 다음 사용 가능한 방을 답에 추가
room.set(next, next + 1); // 다음 방을 사용 중으로 표시
});
return answer;
}
좋아 발전했어
반응형
'개발 > 코딩테스트' 카테고리의 다른 글
알고리즘 (0) | 2023.02.10 |
---|---|
알고리즘이란 (0) | 2023.02.08 |
직사각형 꼭지점 3개있을시 나머지 하나 구하기 (0) | 2022.04.28 |