Algorithm/프로그래머스

호텔 대실

whyWhale 2023. 2. 26.

문제 설명

호텔을 운영하는 주인은 최소 객실만을 이용하여 손님을 받으려 한다.

최소 몇개의 객실만을 가지고 운영할 수 있는가

생각한 아이디어

퇴실 시간 기준으로 오름 차순 정렬을 생각했지만 거의 다 틀렸다.. 왜 안돼는지 아시는 분 있으면 알려주세요 :)

풀이 (입실 시간 기준 정렬)

public int solution(String[][] book_time) {
        int answer = 0;
        String[][] bt=book_time;
        int n=book_time.length;
        List<Time> times=new ArrayList<>();
        
        for(int i=0; i<n; i++){
            String in=bt[i][0];
            String out=bt[i][1];
            times.add(new Time(in,out));
        }
        
        Collections.sort(times);
        
        boolean[] possibles=new boolean[n];
        Arrays.fill(possibles,true);
        
        for(int i=0; i<n; i++){
            if(!possibles[i]) continue;
            Time cur=times.get(i);
            
            for(int j=i+1; j<n; j++){
                if(!possibles[j]) continue;
                Time next=times.get(j);
                if(cur.isRelay(next)){
                    possibles[j]=false;
                    cur=next;
                }
                
            }
            possibles[i]=false;
            answer++;
        }
        
        return answer;
    }

 

퇴실 시간순 오름차순 정렬이 왜 안되는 걸까요..?

 

댓글