-
level 1 - 체육복자료구조와 알고리즘/프로그래머스 문제풀이 2020. 7. 15. 12:59
programmers.co.kr/learn/courses/30/lessons/42862
코딩테스트 연습 - 체육복
점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번�
programmers.co.kr
import java.util.Arrays; class Solution { public int solution(int n, int[] lost, int[] reserve) { int[] cloths = new int[n]; for (int lostNum : lost) { cloths[lostNum - 1]--; } for (int reserveNum : reserve) { cloths[reserveNum - 1]++; } for (int i = 0; i < n; i++) { // 여분의 체육복이 있는 지 확인한다. if (cloths[i] <= 0) { continue; } // 이전 사람이 체육복을 가지지 않았다면 나눠준다. if (i - 1 >= 0 && cloths[i - 1] < 0) { cloths[i]--; cloths[i - 1]++; } // 앞 사람이 체육복을 가지지 않았다면 나눠준다. else if (i + 1 < n && cloths[i + 1] < 0) { cloths[i]--; cloths[i + 1]++; } } // 체육복을 가진 사람의 수를 계산해서 리턴한다. return (int) Arrays.stream(cloths).filter(i -> i >= 0).count(); } }
'자료구조와 알고리즘 > 프로그래머스 문제풀이' 카테고리의 다른 글
level 2 - N개의 최소공배수 (0) 2023.02.22 level 1 - 문자열 다루기 기본 (0) 2020.07.20 level1 - 문자열 내 마음대로 정렬하기 (0) 2020.07.16 level 1 - 완주하지 못한 선수 (0) 2020.07.10