반응형
문제
programmers.co.kr/learn/courses/30/lessons/42862?language=java
코딩테스트 연습 - 체육복
점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번
programmers.co.kr
코드

class Solution {
public int solution(int n, int[] lost, int[] reserve) {
//students
int[] students = new int[n + 1]; //0번 인덱스 사용 X
//lost check
for (int i = 0; i < lost.length; i++)
students[lost[i]] = -1;
//reserve check
for (int i = 0; i < reserve.length; i++)
students[reserve[i]]++; //lost && reserve 대비
//borrow
int idx = -1;
for (int i = 0; i < lost.length; i++) {
idx = lost[i]; //lost 학생 번호
if (students[idx] != -1) continue; //lost && reserve 인 경우 continue
//다음사람에게 빌리기
if (idx < n && students[idx + 1] == 1) { //인덱스 체크 && ~~~
students[idx + 1] = 0;
students[idx] = 0;
continue;
}
//이전사람에게 빌리기
if (idx - 1 >= 1 && students[idx - 1] == 1) { //인덱스 체크 && ~~~
students[idx - 1] = 0;
students[idx] = 0;
}
}
//체육복 없는 학생 카운트
int cnt = 0;
for (int i = 1; i < students.length; i++) {
if (students[i] == -1) cnt++;
}
return n - cnt;
}//method
}
반응형
'개발 > 알고리즘' 카테고리의 다른 글
[프로그래머스] 3진법 뒤집기 (0) | 2021.03.13 |
---|---|
[프로그래머스] 2016년 (0) | 2021.03.11 |
[USACO] 소가 길을 건너간 이유 3 백준 14469 (0) | 2021.02.26 |
[USACO] Teleportation JAVA (0) | 2021.02.25 |
[USACO] Word Processor JAVA (0) | 2021.02.24 |
최근댓글