[ 프로그래머스 ] #42862 : 체육복 - JAVA

🔗 체육복

import java.util.Arrays;
class Solution {
    public int solution(int n, int[] lost, int[] reserve) {
        // n : 전체 학생의 수
        // lost : 도난 당한 학생들의 번호
        // reserve : 여벌의 체육복을 가져온 학생들의 번호
        // 체육 수업을 들을 수 있는 학생의 최댓값 return
        // reserve 학생이 lost 에 있을 수도 있음 -> 빌려줄 수 없음 

        Arrays.sort(lost);
        Arrays.sort(reserve);
        int lostSize=lost.length;
        int reserveSize=reserve.length;
        int answer = 0;

        for(int i=0;i<reserveSize;i++){
            int r=reserve[i];
            for(int j=0;j<lostSize;j++){
                int l=lost[j];

                if(r==l){
                    lost[j]=(-1);
                    reserve[i]=(-1);
                    break;
                }
            }
        }

        for(int i=0;i<reserveSize;i++){
            int r=reserve[i];
            if(r==(-1))continue;
            for(int j=0;j<lostSize;j++){
                int l=lost[j];
                if(l==(-1))continue;
                if(r-1==l){// 왼쪽 사람이 없다면
                    lost[j]=(-1);
                    break;
                }else if(r+1 == l){// 오른쪽 사람이 없다면
                    lost[j]=(-1);
                    break;
                }
            }
        }
        for(int i: lost){
            if(i!=(-1))answer--;
        }
        return answer+n;
    }
}