-
[programmers] 체육복Algorithm/java tip 2021. 3. 6. 15:48
programmers.co.kr/learn/courses/30/lessons/42862
코딩테스트 연습 - 체육복
점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번
programmers.co.kr
import java.util.*; class Solution { public int solution(int n, int[] lost, int[] reserve) { Set<Integer> reserveSet = new HashSet<>(); Set<Integer> lostSet = new HashSet<>(); for(int r : reserve) { reserveSet.add(r); } for(int l : lost) { if(reserveSet.contains(l)) { reserveSet.remove(l); } else { lostSet.add(l); } } List<Integer> temp = new ArrayList<>(lostSet); for(int l : temp) { if(reserveSet.contains(l - 1)) { // 앞사람에게 빌린다. lostSet.remove(l); reserveSet.remove(l - 1); } else if(reserveSet.contains(l + 1)) { // 뒷사람에게 빌린다. lostSet.remove(l); reserveSet.remove(l + 1); } } return n - lostSet.size(); } }
'Algorithm > java tip' 카테고리의 다른 글
[programmers] 가장 먼 노드 (0) 2021.03.06 [programmers] 큰 수 만들기 (0) 2021.03.06 [programmers] 이중 우선순위 큐 (0) 2021.03.06 [programmers] 더 맵게(heap) (0) 2021.03.06 [programmers] 소수 찾기 (0) 2021.03.05