알고리즘 공부/문제 풀이

[2019 카카오 겨울인턴] 호텔방 (JAVA)

valid_ming 2020. 5. 8. 23:22

효율성 구하는데 실패한 문제

 

해쉬를 재귀적으로 사용함으로써 해결

package kakao;

import java.util.*;



public class hotelRoom {
	
	 static Map<Long,Long> rooms=new HashMap<Long,Long>();
	 
	 static long[] solution(long k, long[] room_number) {
	        long[] answer = new long[room_number.length];
	        
	        
	        for(int i=0;i<room_number.length;i++) {
	        	answer[i]=find(room_number[i])-1;
	        }
	        
	        for(int i=0;i<answer.length;i++)System.out.println(answer[i]);

	        return answer;
	    }
	 
	 static long find(long number) {
		 if(!rooms.containsKey(number)) {
			 rooms.put(number,number+1);
			 return number+1;
		 }
		 else {
			 long temp=find(rooms.get(number));
			 rooms.put(number,temp);
			 return temp;
		 }
	 }
	
	
	public static void main(String[] args) {
		long[] rooms={1,3,4,1,3,1};
		long[] ans=solution(10,rooms);

	}

}