Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit cead87e

Browse files
Add 체육복.js
1 parent 7bbce1a commit cead87e

File tree

1 file changed

+38
-0
lines changed

1 file changed

+38
-0
lines changed

‎level-1/체육복.js

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,3 +23,41 @@ function solution(n, lost, reserve) {
2323
answer -= 2
2424
return answer;
2525
}
26+
27+
//정답 2 - prove-ability
28+
function solution(n, lost, reserve) {
29+
// students 초기화 - 학생들은 체육복 개수 1로 초기화
30+
let students = Array.from({length: n}).fill(1);
31+
32+
// 읽어버린 학생 개수 반영
33+
lost.forEach((target) => {
34+
students[target - 1]--;
35+
})
36+
37+
// 여별 체육복 개수 반영
38+
reserve.forEach((target) => {
39+
students[target - 1]++;
40+
})
41+
42+
// 학생들 순차적으로 접근
43+
for(let i = 0, len = students.length; i < len; i++) {
44+
// 체육복 0 | 1 을 가진 학생들을 대여 불가능이기 때문에 continue
45+
if(students[i] === 0 || students[i] === 1) continue;
46+
// 이전 번호의 학생이 있고 그 학생이 0개의 체육복을 가졌다면
47+
if(i !== 0 && students[i - 1] === 0) {
48+
// 이전 학생 증가
49+
students[i - 1]++;
50+
// 자신은 대여해줬으니 감소
51+
students[i]--;
52+
}
53+
// 인덱스 학생이 1개 초과한 체육을 가지고 다음 번호의 학생이 있고 그 학생이 0개의 체육복을 가졌다면
54+
if(students[i] > 1 && i + 1 !== len && students[i + 1] === 0) {
55+
// 다음 학생 증가
56+
students[i + 1]++;
57+
// 자신은 대여해줬으니 감소
58+
students[i]--;
59+
}
60+
}
61+
// 체육복 1개 이상을 가진 학생들의 수 반환
62+
return students.filter((v => v >= 1)).length;
63+
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /