알고리즘🍈

문제풀이[그리디] - 체육복

Jeein0313 2023. 8. 20. 21:59

프로그래머스 - 체육복

import java.util.*;

class Solution {
    public int solution(int n, int[] lost, int[] reserve) {
        int answer = n - lost.length;

        Arrays.sort(lost);
        Arrays.sort(reserve);
        
        //여벌 체육복이 있는 학생이 도난당할 경우
        for(int i=0;i<lost.length;i++){
            for(int j=0;j<reserve.length;j++){
                if(lost[i]==reserve[j]){
                    answer++;
                    lost[i]=-1;
                    reserve[j]=-1;
                    break;
                }
            }
        }
        
        //도난당한 학생에게 체육복을 빌려주는 경우
        for(int i=0;i<lost.length;i++){
            for(int j=0;j<reserve.length;j++){
                if((lost[i]-1 == reserve[j]) || lost[i]+1 == reserve[j]){
                    answer++;
                    reserve[j]=-1;
                    break;
                }
            }
        }
        
        return answer;
    }
}