티스토리 뷰

https://programmers.co.kr/learn/courses/30/lessons/42862#

 

코딩테스트 연습 - 체육복

점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번�

programmers.co.kr

 

 

 

class Solution {
    public int solution(int n, int[] lost, int[] reserve) {
        int answer = 0;
        
        // 도난 당하지 않은 학생 수
        answer = n - lost.length;
        
        // 체육복을 잃어버렸지만 (lost) 여분을 가지고 있는 학생 (reserve) 은 못 빌려줌 (lost에도 있고 reserve에도 있는 학생)
        int exist = 0;
        
        for(int i=0; i<reserve.length; i++) {
            
            for(int j=0; j<lost.length; j++) {
                
                if(reserve[i] == lost[j]) {
                    exist++;
                    
                    // 못 빌려주게 만듦
                    reserve[i] = -1;
                    lost[j] = -1;
                    
                    break;
                }
                    
            }
        }
        
        // 옷을 빌려입은 학생
        int rent = 0;
        
        for(int i=0; i<reserve.length; i++) {
            
            for(int j=0; j<lost.length; j++) {
                
                if(reserve[i] + 1 == lost[j] || reserve[i] - 1 == lost[j]) {
                    System.out.println(reserve[i] + "가 " + lost[j] + "에게 빌려줌");
                    rent++;
                    reserve[i] = -1;
                    lost[j] = -1;
                }
            }
        }
        
        answer += exist + rent;
        
        return answer;
    }
}
최근에 올라온 글
«   2024/07   »
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 31
Total
Today
Yesterday