본문 바로가기

Algorithm/Code Fights (Code Signal)

Aracade Intro #39 knapsackLight. Algorithm, 알고리즘, Codefights, CodeSignal, 코드파이트, 코드시그널, 예제, example, c++ java c# scalar

Aracade Intro #39 knapsackLight. Algorithm, 알고리즘, Codefights, CodeSignal, 코드파이트, 코드시그널, 예제, example, c++ java c# scalar





Q.


 You found two items in a treasure chest! The first item weighs weight1 and is worth value1, and the second item weighs weight2 and is worth value2. What is the total maximum value of the items you can take with you, assuming that your max weight capacity is maxW and you can't come back for the items later?


Note that there are only two items and you can't bring more than one item of each type, i.e. you can't take two first items or two second items.


 보물상자에서 아이템을 2개 찾았다! 첫번째 아이템 무게는 weight1 이고 value1 만큼 값어치가 있으며, 두번째 아이템의 무게는 weight2 이고 value2 만큼의 값어치가 있다. 최대한의 값어치로 니가 가져갈수 있는 아이템은 얼만큼인지 봐봐라, 니가 가져갈 수 있는 최대 무개는 maxW 이고, 넌 나중에 다른 아이템을 더 가져갈 수 없다.


 Note, 항상 두개의 아이템 종류가 있고, 너는 같은 종류 아이템을 한개 이상 가져갈 수 없다.



e.g.


Input -> value1 = 10, weight1 = 5, value2 = 6, weight2 = 4, and maxW = 8


Output -> knapsackLight(value1, weight1, value2, weight2, maxW) = 10


You can only carry the first item.

첫번째 아이템만 1개 가져간다.



Input -> value1 = 10, weight1 = 5, value2 = 6, weight2 = 4, and maxW = 9


Output -> knapsackLight(value1, weight1, value2, weight2, maxW) = 16


You're strong enough to take both of the items with you.

두개 다 가져갈 무게가 충분하다.



Input -> value1 = 5, weight1 = 3, value2 = 7, weight2 = 4, and maxW = 6


Output -> knapsackLight(value1, weight1, value2, weight2, maxW) = 7


You can't take both items, but you can take any of them.

두번째 아이템 한개를 가져갈 수 있다.



//Process

//1. Input items' weight and value, and maxWeight

//2. Compare weights and maxW to check the items you can bring

//3. Return maximumValue you can bring



//처리과정

//1. 아이템들의 무게와 가치, 가져갈 수 있는 최대 무게를 입력받는다.

//2. 각 아이템들의 무게와 최대무게를 비교해서 가져갈 아이템을 체크한다.

//3. 최종 가져가는 아이템의 전체 가치값을 반환한다.



Code.. Lemme see code!!!!!


코드.. 코드를 보자!!!!!




int knapsackLight(int value1, int weight1, int value2, int weight2, int maxW) {

    

    int resultValue = 0;

    

    if (maxW < weight1 + weight2) 

    {

        if (maxW >= weight1 && maxW >= weight2) 

        {

            if (value1 >= value2) 

            {

                resultValue = value1;

            } 

            else 

            {

                resultValue = value2;

            }

        } 

        else if (maxW >= weight1) 

        {

            resultValue = value1;

        } 

        else if (maxW >= weight2)

        {

            resultValue = value2;

        }

    } 

    else 

    {

        resultValue = value1 + value2;

    }

    return resultValue;

}





Something else you might like..




2018/12/14 - [Algorithm/Code Fights (Code Signal)] - Aracade Intro #41 digitDegree. Algorithm, 알고리즘, Codefights, CodeSignal, 코드파이트, 코드시그널, 예제, example, c++ java c# scalar

2018/12/12 - [Algorithm/Code Fights (Code Signal)] - Aracade Intro #40 longestDigitsPrefix. Algorithm, 알고리즘, Codefights, CodeSignal, 코드파이트, 코드시그널, 예제, example, c++ java c# scalar

2018/12/10 - [Algorithm/Code Fights (Code Signal)] - Aracade Intro #39 knapsackLight. Algorithm, 알고리즘, Codefights, CodeSignal, 코드파이트, 코드시그널, 예제, example, c++ java c# scalar

2018/12/10 - [Algorithm/Code Fights (Code Signal)] - Aracade Intro #38 growingPlant. Algorithm, 알고리즘, Codefights, CodeSignal, 코드파이트, 코드시그널, 예제, example, c++ java c# scalar

2018/12/10 - [Algorithm/Code Fights (Code Signal)] - Aracade Intro #37 arrayMaxConsecutiveSum. Algorithm, 알고리즘, Codefights, CodeSignal, 코드파이트, 코드시그널, 예제, example, c++ java c# scalar

2018/12/10 - [Algorithm/Code Fights (Code Signal)] - Aracade Intro #36 differentSymbolsNaive. Algorithm, 알고리즘, Codefights, CodeSignal, 코드파이트, 코드시그널, 예제, example, c++ java c# scalar



2018/12/13 - [Computer/Linux] - How to check ongoing live process on Linux cmd, 리눅스 커맨드창에서 어떤 프로세스가 실행중인지 확인하기, java, ubuntu, cpp


2018/12/13 - [Programming/Java] - How to change color theme in JavaFx example, 자바Fx 전체적인 색 테마 바꾸기 예제, ui, 디자인


2018/12/11 - [Computer/General] - How to make Windows10 iso booting usb in Ubuntu, 우분투에서 윈도우즈 10 부팅 usb 만들기, 리눅스 우분트 윈도우즈 설치



2018/12/02 - [Life/Health care] - Maca 마카 usage/side effects/dosage 효능/부작용/용법

2018/12/03 - [Life/Health care] - Lecithin 레시틴 usage/side effects/dosage 효능/부작용/용법