반응형

Greedy 알고리즘로 접근하여 풀이 필요

프로그래머스 : 체육복 Lv.1

 

https://school.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 result = n - lost.length;

        Arrays.sort(lost);
        Arrays.sort(reserve);

        // 1. 여벌 체육복을 가져왔지만 도난 당한 학생 수
        // 즉, 다른 학생에게 빌려줄 수 없음
        for(int i=0;i<lost.length;i++){
            for(int j=0; j<reserve.length;j++){
                if(lost[i] == reserve[j]){
                    result++;
                    lost[i] = -1;
                    reserve[j] = -1;
                    break;
                }
            }
        }

        // 2. 도난 당했지만 체육복을 빌릴 수 있는 학생 수
        for(int i=0;i<lost.length;i++){
            for(int j=0;j<reserve.length;j++){
                if(lost[i] - 1 == reserve[j] || lost[i] + 1 == reserve[j]){
                    result++;
                    reserve[j] = -1;
                    break;
                }
            }
        }
        
        return result;
    }
}

 

반응형

'알고리즘 > 프로그래머스' 카테고리의 다른 글

[1차] 비밀지도  (0) 2024.03.18
대충 만든 자판  (0) 2024.03.14
피로도  (1) 2024.03.11
호텔 대실  (0) 2024.03.09
로또의 최고 순위와 최저 순위  (0) 2024.03.08

+ Recent posts