

//import java.util.Arrays;
public class PRO_42576 {
public static int solution(int n, int[] lost, int[] reserve) {
int[] student = new int[n + 1];
for (int i = 0; i < student.length; i++) student[i] = 1;
for (int i : lost) student[i] -= 1;
for (int i : reserve) student[i] += 1;
for (int i = 1; i < student.length; i++) {
if (student[i] != 2) continue;
if (student[i - 1] == 0) {
student[i] -= 1;
student[i - 1] += 1;
continue;
}
if (i != n && student[i + 1] == 0) {
student[i] -= 1;
student[i + 1] += 1;
}
}
int answer = 0;
for (int i = 1; i < student.length; i++) {
if (student[i] != 0)
++answer;
}
return answer;
}
/*
public static int solution(int n, int[] lost, int[] reserve) {
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[i]) {
answer++;
lost[i] = -1;
reserve[i] = -1;
break;
}
}
}
//체육복 도난 당한 학생에게 체육복을 빌려줄 수 있는지
for (int i = 0; i < lost.length; i++) {
for (int j = 0; j < reserve.length; j++) {
if (lost[i] == reserve[j] - 1 || lost[i] == reserve[j] + 1) {
answer++;
reserve[i] = -1;
break;
}
}
}
return answer;
}
*/
public static void main(String[] args) {
int n = 5;
int[] lost = {2, 4};
int[] reserve = {1, 3, 5};
System.out.println(solution(n, lost, reserve));
}
}
학생 배열을 하나 생성하여 체육복을 잃어버린 학생과 여분의 체육복이 있는 학생을 저장한다. 만약 학생의 체육복의 개수가 2개이고 앞 학생의 체육복의 개수가 0개라면, 앞 학생에게 체육복을 빌려주면서 자신의 체육복의 개수는 1개로 변경하고 앞 학생의 체육복 개수를 1개로 변경해준다. 뒤 학생의 경우도 마찬가지이다.