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

Appearance settings

Latest commit

 

History

History
History
77 lines (65 loc) · 2.04 KB

File metadata and controls

77 lines (65 loc) · 2.04 KB
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
/**
* 문제URL
* https://programmers.co.kr/learn/courses/30/lessons/42862?language=java
*/
class JogginSuit{
public int solution(int n, int[] lost, int[] reserve) {
int answer = 0;
// 1. student 배열 생성. 인덱스 앞뒤 계산의 편의성을 위해서 크기를 2 크게 만듬
int[] student = new int[n+2];
// 2. reserve +1 / lost -1
for (int r : reserve) {
student[r]++;
}
for (int l : lost) {
student[l]--;
}
// 3. 1이면 여분이 있다고 판단해 앞뒤로 -1인 사람에게 체육복을 빌려줌
for (int i = 1; i <= n; i++) {
if (student[i] == 1) {
if (student[i - 1] == -1) {
student[i]--;
student[i - 1]++;
} else if (student[i + 1] == -1) {
student[i]--;
student[i + 1]++;
}
}
}
// 4. 체육복을 갖고 있는 학생수를 계산
for (int i = 1; i <= n; i++) {
if (student[i] >= 0) {
answer++;
}
}
return answer;
}
// 다른사람의 set을 이요한 풀이
public int solution2(int n, int[] lost, int[] reserve) {
int answer = 0;
// 1. 여분이 있는 학생과 도난 당한 학생을 set으로 만든다.
HashSet<Integer> resSet = new HashSet<>();
HashSet<Integer> lostSet = new HashSet<>();
for (int i : reserve) {
resSet.add(i);
}
for (int i : lost) {
if (resSet.contains(i)) { // 여분이 있는 학생이 도난 당한 경우
resSet.remove(i);
} else {
lostSet.add(i);
}
}
// 2. 여분을 기준으로 앞뒤로 확인하여 체육복을 빌려줌
for (int i : resSet) {
if (lostSet.contains(i - 1)) {
lostSet.remove(i - 1);
} else if (lostSet.contains(i + 1)) {
lostSet.remove(i + 1);
}
}
// 3. 전체 학생 수에서 lostSet에 남은 학생수를 빼줌
answer = n - lostSet.size();
return answer;
}
}
Morty Proxy This is a proxified and sanitized view of the page, visit original site.