ㅇㅇㅈ Blog

프론트엔드 수행중

0%

체육복

  1. 체육복을 도난 당한 학생 수는 1명 이상 n명 이하 중복된 번호는 없다
  2. 여벌의 체육복을 가져온 학생의 수는 1명 이상 n명 이하 중복된 번호는 없다
  3. 여벌 체육복을 가져온 사람만 빌려 줄 수 있다
  4. 자신의 번호 앞 뒤로 +1 -1 인 사람 한테만 한 벌 빌려 줄 수 있다
  5. 자기 자신의 체육복도 도난 당했을 수도 있다 => 자기만 입을 수 있고 빌려 줄 수는 없다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
let lost = [2, 4]
let reserve = [1, 3, 5]

function solution(n, lost, reserve) {
var answer = 0
let lostV = lost.filter((x) => !reserve.includes(x))
console.log(lostV)
let reserveV = reserve.filter((x) => !lost.includes(x))
console.log(reserveV)
let arr = reserveV
.map((e) => {
return e + 1
})
.filter((e) => e <= n)
// console.log(arr)
let arr2 = lostV.filter((x) => {
return !arr.includes(x)
})
// console.log(arr2)
answer = n - arr2.length
console.log(answer)
return answer
}
solution(5, lost, reserve)

첫 작성 코드.. 30점

  • 문제는 자기 자신이 잃어 버렸을때는 자기 밖에 못 입는다는게 문제!
  1. 가져온 사람 번호에서 잃어버린 사람 번호를 필터한다
  • -> 자기 자신도 잃어 버렸으면 걸러진다
  • 진짜 못 입는 사람과, 두 벌 가져온 사람만 남는다
  1. 두 벌 가져온 사람 번호에서 -1을 해서 잃어버린 사람 꺼를 다시 필터 해준다
  2. 두 벌 가져온 사람 번호에서 +1을 해서 잃어버린 사람 꺼를 다시 필터 해준다
  3. 총 학생 수 에서 필터된 못입는 사람수를 빼준다

잘 안풀린다..