티스토리 뷰
프로그래머스 42862번 - 체육복

요구사항
1. 바로 앞번호의 학생이나 바로 뒷번호의 학생에게만 체육복을 빌려줄 수 있습니다.
2. 여벌 체육복이 있는 학생만 다른 학생에게 체육복을 빌려줄 수 있습니다.
3. 체육복이 있어야 체육 수업을 들을 수 있습니다.
4. 체육수업을 들을 수 있는 학생의 최댓값을 반환하라.
요구사항 분석 및 풀이과정
1. 체육복을 도난당한 사람에게는 체육복을 0벌을 줍니다.
2. 여복 체육복을 가져온 학생은 2벌을 줍니다.
3. 처음 학생부터 마지막 학생까지 순회하면서 체육복이 없을 경우 좌우 학생이 여복 체육복이 있을 경우 빌립니다.
4. 체육복을 소유한 학생의 수를 계산합니다.
소스코드 작성
import java.util.Arrays;
class Solution {
public int solution(int n, int[] lost, int[] reserve) {
int[] students = new int[n];
for(int i = 0; i < n; i++) {
students[i]++;
}
for(int l : lost) {
students[l-1]--;
}
for(int r : reserve) {
students[r-1]++;
}
for(int i = 0; i < n; i++) {
if (i-1 >= 0 && students[i-1] == 0 && students[i] >= 2) {
students[i-1]++;
students[i]--;
}
if (i+1 < n && students[i+1] == 0 && students[i] >= 2) {
students[i+1]++;
students[i]--;
}
}
return (int)Arrays.stream(students).filter(student -> student >= 1).count();
}
}
결과

소스코드 깃허브 주소
'코딩테스트 > 알고리즘' 카테고리의 다른 글
[알고리즘]프로그래머스 17682번 - [1차] 다트게임 (0) | 2022.01.11 |
---|---|
[알고리즘]프로그래머스 42889번 - 실패율 (0) | 2022.01.10 |
[알고리즘]프로그래머스 12945번 - 피보나치 수 (0) | 2022.01.09 |
[알고리즘]프로그래머스 12909번 - 올바른 괄호 (0) | 2022.01.09 |
[알고리즘]프로그래머스 42840번 - 모의고사 (0) | 2022.01.09 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 카카오
- dp
- Java
- 연결리스트
- 스트림
- dsu
- 회고
- 프로그래머스
- k8s
- 정렬
- 해쉬
- set
- kotlin
- 문자열
- 코딩인터뷰
- 비트연산
- 코드 스니펫
- TDD
- Uber
- 오늘의집
- sql
- 스택
- 쓰레드
- 탐욕법
- dfs
- BFS
- 구현
- JPA
- 우선순위큐
- 알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함