ALGORITHM/PROGRAMMERS
[프로그래머스] 체육복
0298
2021. 12. 6. 13:42
https://programmers.co.kr/learn/courses/30/lessons/42862
코딩테스트 연습 - 체육복
점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번
programmers.co.kr
2021-12-06
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
import java.util.Arrays;
class Solution {
public int solution(int n, int[] lost, int[] reserve) {
int answer = 0;
int[] arr = new int[n];
for(int i = 0; i < lost.length; i++) {
arr[lost[i] - 1] = 1;
}
Arrays.sort(lost);
Arrays.sort(reserve);
for(int i = 0; i < reserve.length; i++) {
if(arr[reserve[i]-1] == 1) {
arr[reserve[i]-1] = 2;
answer++;
}
}
for(int i = 0; i < reserve.length; i++) {
int val = reserve[i] - 1;
if(arr[val] != 0) continue;
if(val != 0 && arr[val-1] == 1) {
arr[val-1] = 0;
answer++;
} else if(val != n-1 && arr[val+1] == 1) {
arr[val+1] = 0;
answer++;
}
}
return n - lost.length + answer;
}
}
|
cs |
#문제풀이
빌린 수 카운트 해줘서, 전체 n에서 잃어버린만큼 빼고 다시 빌린만큼 더했다.