일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- JPA
- hanghae99
- jenkins
- real time web
- Anolog
- server send event
- web
- WIL
- oauth
- DI
- Java
- javascript
- SseEmitter
- spring
- 생명주기 콜백
- programmers
- Hibernate
- JWT
- jQuery
- python
- 항해99
- session
- Project
- cookie
- html
- Spring Security
- flask
- google oauth
- Stream
- bean
Archives
- Today
- Total
끄적끄적 코딩일지
[Programmers]체육복(난이도:★★★★★) 본문
https://programmers.co.kr/learn/courses/30/lessons/42862
코딩테스트 연습 - 체육복
점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번
programmers.co.kr
class Solution {
public int solution(int n, int[] lost, int[] reserve) {
int answer = 0;
return solutionA(n,lost,reserve);
}
public int solutionA(int n, int[] lost, int[] reserve){
int answer = n - lost.length;
// index 앞 뒤로 비교할꺼기 때문에 정렬
sort(lost);
sort(reserve);
// 여분을 가지고 있는 사람이 체육복을 잃어버리면 여분 목록에서 제거
for(int i = 0 ; i < lost.length;i++){
for(int j = 0 ; j < reserve.length; j++){
if(lost[i] == reserve[j]){
lost[i] = -1;
reserve[j] = -1;
answer++;
break;
}
}
}
// 앞 뒤 인덱스와 비교해서 숫자가 일치하면 counter 증가 및 제거
for(int i = 0 ; i < lost.length; i++){
if(lost[i] == -1)
continue;
for(int j = 0; j < reserve.length; j++){
if(reserve[j] == -1)
continue;
if(lost[i] == reserve[j]-1 || lost[i] == reserve[j]+1){
answer++;
reserve[j] = -1;
break;
}
}
}
return answer;
}
public void sort(int[] arr){
int idx = arr.length -1;
for(int i = 0 ; i < arr.length; i++){
for(int j = 0; j < idx; j++){
if(arr[j] > arr[j+1]){
int tmp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = tmp;
}
}
}
}
}
'알고리즘' 카테고리의 다른 글
[Programmers][1차] 비밀지도(난이도:★★★★★★) (0) | 2022.05.17 |
---|---|
[Programmers]폰켓몬(난이도:★★★★★) (0) | 2022.05.17 |
[Programmers]실패율(난이도:★★★★★) (0) | 2022.05.17 |
[Programmers]소수찾기(난이도:★★★★★) (0) | 2022.05.16 |
[Programmers]나머지가 1이 되는 수 찾기(난이도:★★★★★) (0) | 2022.05.16 |