본문 바로가기
Algorithm/PROGRAMMERS[Java]

Lv1. 체육복

by 씨니 2022. 4. 21.
728x90

▶ 문제

 

▶ 풀이방법

** 주의 : 여러 체육복 가져온 학생중, 체육복 도난 당한 학생은 빌려줄수 없음.

import java.util.*;
class Solution {
    public int solution(int n, int[] lost, int[] reserve) {
        Arrays.sort(lost);
	    Arrays.sort(reserve);
	    
	    int answer = n-lost.length;
	    Queue<Integer> que = new LinkedList<Integer>();
	    
	    for(int m : lost) { //여벌의 체육복 가져온 친구중 도난당한 친구판별
	    	boolean ck = false;
	    	for(int i = 0; i < reserve.length; i++) {
	    		if(m == reserve[i]) {
	    			answer++;
	    			reserve[i] = -1;
	    			ck = true;
	    			break;
	    		}
	    	}
	    	if(!ck) { //여벌옷 가져오지 않은 친구 queue에 저장.
	    		que.offer(m);
	    	}
	    	
	    }
	    
	    while(!que.isEmpty()) {//여벌옷 가져오지 않은 친구중, 옷 빌릴수 있는 친구 판별.
	    	int student = que.remove();
	    	for(int i = 0; i < reserve.length; i++) {
	    		if(student-1 == reserve[i] || student+1 == reserve[i]) {
	    			answer++;
	    			reserve[i] = -1;
	    			break;
	    		}
	    	}
	    }
        return answer;
    }
}
728x90

'Algorithm > PROGRAMMERS[Java]' 카테고리의 다른 글

Lv1. K번째 수  (0) 2022.04.24
Lv1. 모의고사  (0) 2022.04.21
Lv1. 폰켓몬  (0) 2022.04.20
Lv1. 실패율[카카오]  (0) 2022.04.18
Lv1. 약수의 개수와 덧셈  (0) 2022.04.17