체육복(탐욕법)

하연·2021년 11월 28일
0

-n크기의 배열을 만들어 0으로 초기화한다.
-체육복을 잃어버린 사람은 -1로 바꾼다.
-여분의 체육복을 가지고 있는 사람의 앞, 뒤 사람이 -1이면 0으로 매꾼다.

*문제) 여벌의 체육복을 가지고 있는 사람이 체육복을 잃어버린 경우 본인이 먼저 입어하므로 빌려줄수 있는 사람 리스트에서 제외되어야 한다.

import java.io.*;
import java.util.*;

public class Main {
    public static void main(String[] args) {
        int[] lost = {1,2};
        int[] reverse = {2,3};

        int result = solution(3, lost, reverse);
        // for(int a = 0; a<result.length; a++)
        System.out.println(result);
    }
    public static int solution(int n, int[] lost, int[] reserve) {
        int answer = 0;
        int[] arr = new int[n+1];
        //기본적으로 0 (1부터 시작)
        //잃어버렸으면 -1
        for(int lostone : lost){
            arr[lostone]= -1;
        }
        //여기가 문제
        for(int reserved : reserve){
            for(int lostone : lost){
                if(lostone==reserved){
                    arr[]
                }
            }
        }
        //스패어가 있는데 앞뒤가 -1이면 0으로 매꿈
        for(int reserved : reserve){
            if(arr[reserved-1]==-1){
                arr[reserved-1]=0;
            }else if(reserved+1<arr.length){
                 if(arr[reserved+1]==-1){
                    arr[reserved+1]=0;
                }
            }
        }
        //몇명 없는지 확인
        for(int one : arr){
            answer=answer+one;
        }
        
        answer=n+answer;
        return answer;
    }
}

0개의 댓글