[프로그래머스] (lv.1) 체육복

0

코딩테스트

목록 보기
37/37
post-thumbnail

링크 :
https://school.programmers.co.kr/learn/courses/30/lessons/42862

풀이 :

import java.util.*;

class Solution {
    public int solution(int n, int[] lost, int[] reserve) {
        int answer = 0;
        
        Set<Integer> lostSet = new HashSet<>();
        Set<Integer> reserveSet = new HashSet<>();
        
        // 1. set 채우기
        for (int r : reserve) {
            reserveSet.add(r);
        }
        for (int l : lost){
            if(reserveSet.contains(l)) reserveSet.remove(l);    // 여분있는애가 잃어버린거면 빌려줄 리스트에서 삭제
            else lostSet.add(l);    // 아니면 그냥 잃어버린애 리스트에 추가
        }
        
        // 2. 빌려줄 수 있는애랑 잃어버린 애 비교
        for(int r : reserveSet){    // 빌려줄 수 있는 애 중에서
            if(lostSet.contains(r-1)){
                lostSet.remove(r-1);    // 빌린애는 제외
            }
            else if(lostSet.contains(r+1)){
                lostSet.remove(r+1);
            }
        }
            
        answer = n - lostSet.size();
        return answer;
    }
}

참고 :
https://m.blog.naver.com/sosow0212/222688948656

profile
두둥탁 뉴비등장

0개의 댓글