
제한인 방 번호가 10^12이므로 배열의 크기보다 크기때문에 배열로는 모든 방을 나타낼수없다.
따라서 hashMap을 사용하여 모든값을 하나씩 비교하는게 아닌 건너뛰는형식으로 처리하는것이 가장 빠르다.
코드(hashMap)
import java.util.*;
class Solution {
HashMap<Long,Long> map;
public long[] solution(long k, long[] room_number) {
map= new HashMap<>();
long[] answer = new long[room_number.length];
for(int i=0;i<room_number.length;i++){
answer[i]= numberRoom(room_number[i]);
}
return answer;
}
public long numberRoom(long num){
if(!map.containsKey(num)){
map.put(num,num+1);
return num;
}else{
map.put(num, numberRoom(map.get(num)));
return map.get(num);
}
}
}