유의사항
1. 체육수업을 들을 수 있는 학생의 최댓값을 구하는 것
2. 여유분이 있는 학생이 체육복을 도난당했을 때는 우선순위로 자신의 것을 입는다
import java.util.*;
import java.util.stream.IntStream;
class Solution {
public int solution(int n, int[] lost, int[] reserve) {
int[] students = new int[n+1];
IntStream.of(lost).forEach(i -> students[i] -= 1);
IntStream.of(reserve).forEach(i -> students[i] += 1);
IntStream.of(reserve)
.filter(i -> students[i] == 1)
.forEach(i -> {
if ((i-1) > 0 && students[i-1] == -1) {
students[i-1] += 1;
} else if ((i+1) <= n && students[i+1] == -1){
students[i+1] += 1;
} });
return (int)IntStream.range(1, n+1)
.filter(i -> students[i] >= 0)
.count();
}
}
1) 학생 수에 대한 배열 생성
2) 잃어버린 학생 반영
3) 여유분 학생에 대한 체육복 나눔 시작
정확성 테스트
정확성 테스트
테스트 1 〉 통과 (6.88ms, 53.9MB)
테스트 2 〉 통과 (3.55ms, 56.1MB)
테스트 3 〉 통과 (7.40ms, 53.7MB)
테스트 4 〉 통과 (7.10ms, 53.2MB)
테스트 5 〉 통과 (4.89ms, 52.9MB)
테스트 6 〉 통과 (10.10ms, 52.2MB)
테스트 7 〉 통과 (6.05ms, 52.7MB)
테스트 8 〉 통과 (6.27ms, 52.5MB)
테스트 9 〉 통과 (3.98ms, 52.6MB)
테스트 10 〉 통과 (4.16ms, 52.4MB)
테스트 11 〉 통과 (4.23ms, 52.4MB)
테스트 12 〉 통과 (4.40ms, 52.3MB)
def solution(n, lost, reserve):
answer = n
student = [0 for i in range(0, n+2)]
lostList = Counter(lost) - Counter(reserve)
reserveList = Counter(reserve) - Counter(lost)
for lost in lostList:
student[lost] -= 1
answer -= 1
for reserve in reserveList:
if reserve-1 > 0 and student[reserve-1] == -1:
student[reserve-1] += 1
answer += 1
elif reserve+1 <= n and student[reserve+1] == -1:
student[reserve+1] += 1
answer += 1
return answer
정확성 테스트
정확성 테스트
테스트 1 〉 통과 (0.06ms, 10.3MB)
테스트 2 〉 통과 (0.06ms, 10.3MB)
테스트 3 〉 통과 (0.06ms, 10.2MB)
테스트 4 〉 통과 (0.05ms, 10.2MB)
테스트 5 〉 통과 (0.07ms, 10.2MB)
테스트 6 〉 통과 (0.05ms, 10.2MB)
테스트 7 〉 통과 (0.08ms, 10.3MB)
테스트 8 〉 통과 (0.05ms, 10.3MB)
테스트 9 〉 통과 (0.05ms, 10.2MB)
테스트 10 〉통과 (0.07ms, 10.3MB)
테스트 11 〉통과 (0.05ms, 10.3MB)
테스트 12 〉통과 (0.05ms, 10.3MB)
def solution(n, lost, reserve):
_reserve = [r for r in reserve if r not in lost]
_lost = [l for l in lost if l not in reserve]
for r in _reserve:
f = r - 1
b = r + 1
if f in _lost:
_lost.remove(f)
elif b in _lost:
_lost.remove(b)
return n - len(_lost)
정확성 테스트
정확성 테스트
테스트 1 〉 통과 (0.01ms, 10.3MB)
테스트 2 〉 통과 (0.01ms, 10.3MB)
테스트 3 〉 통과 (0.01ms, 10.3MB)
테스트 4 〉 통과 (0.01ms, 10.1MB)
테스트 5 〉 통과 (0.01ms, 10.2MB)
테스트 6 〉 통과 (0.01ms, 10.2MB)
테스트 7 〉 통과 (0.02ms, 10.3MB)
테스트 8 〉 통과 (0.01ms, 10.3MB)
테스트 9 〉 통과 (0.01ms, 10.2MB)
테스트 10 〉 통과 (0.01ms, 10.2MB)
테스트 11 〉 통과 (0.01ms, 10.4MB)
테스트 12 〉 통과 (0.01ms, 10.3MB)
배열안에 for안에 if문,,,!