본문 바로가기

Algorithm/Code Fights (Code Signal)

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

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



Q.


Elections are in progress!

Given an array of the numbers of votes given to each of the candidates so far, and an integer k equal to the number of voters who haven't cast their vote yet, find the number of candidates who still have a chance to win the election.

The winner of the election must secure strictly more votes than any other candidate. If two or more candidates receive the same (maximum) number of votes, assume there is no winner at all.

 투표가 진행 중이다!


 지금까지 각 후보자들에게 주어진 표 수의 배열과, 아직 투표하지 않은 사람들의 수인 정수 k 를 보고, 아직 승리할 가능성이 있는 후보자들의 수를 구하여라.


 투표의 승자는 동일한 수의 득표는 인정하지 않는다. 두명이나 그 이상의 후보자들이 같은 득표수를 갖고 있다면, 승자는 없는 것이다.



e.g.


Input -> votes = [2, 3, 5, 2] and k = 3


Output -> electionsWinners(votes, k) = 2.


The first candidate got 2 votes. Even if all of the remaining 3 candidates vote for him, he will still have only 5 votes, i.e. the same number as the third candidate, so there will be no winner.


The second candidate can win if all the remaining candidates vote for him (3 + 3 = 6 > 5).


The third candidate can win even if none of the remaining candidates vote for him. For example, if each of the remaining voters cast their votes for each of his opponents, he will still be the winner (the votes array will thus be [3, 4, 5, 3]).


The last candidate can't win no matter what (for the same reason as the first candidate).

Thus, only 2 candidates can win (the second and the third), which is the answer.


 첫번째 후보자는 득표수가 2이다. 만약 3개의 남은 표가 그에게 다 돌아가더라도, 그는 5개 득표밖에 안된다, 하지만 이미 5 득표를 한 사람이 있기 때문에 승자가 없다.


 두번째 후보자는 나머지 표를 다 가져가면 이길 수 있다.


 세번째 후보자는 아무도 더 투표해주지 않아도 이미 이겨있다. 나머지 사람들에게 하나씩 투표해주더라도 세번째 후보자는 승자이다.


 네번째 후보자는 첫번째 후보자와 같이 이길 수 없다.



//Process


//1. Input vector and integer k
//2. Get biggest vote
//3. Iterate from begin to the end
// 3.1. Check if index value + k is bigger than biggest vote
//  3.1.1. If so -> count++
//4. Return count



//처리과정


//1. 벡터와 정수를 입력받는다.

//2. 가장 많은 득표수를 찾는다.

//3. 시작부터 끝까지 반복한다.

// 3.1. 해당 인덱스 득표수 + k 가 가장 큰 득표수보다 큰지 확인해서

//  3.1.1. 더 크면 -> count를 센다

//4. count 를 출력한다.




Code.. Lemme see code!!!!!


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




int electionsWinners(std::vector<int> votes, int k) {


    int count = 0;

    

//Need to edit ( solution 2)

//     int biggest_element = *max_element(votes.begin(),votes.end());  

//     for (int i = 0; i < votes.size(); ++i)

//     {

//         if (biggest_element < votes[i] + k || votes[i] == biggest_element)

//         {

//             ++count;

//         }

//     }


    for (int i = 0; i < votes.size(); ++i)

    {

        int number = votes.at(i) + k;

        // cout << number;

        bool hasBiggerOne = 0;

        for (int j = 0; j < votes.size() && hasBiggerOne == 0; ++j)

        {

            if (i != j && number <= votes.at(j))

            {

                hasBiggerOne = 1;

            }

        }

        if (hasBiggerOne == 0)

        {

            ++count;

        }

    }

    return count;

}




Something else you might like..




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

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

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

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/20 - [Programming/Java] - How to convert file to byte array (byte[]) example, 파일 객체 바이트로 변환하기 예제코드, java/cpp/c++/scalar


2018/12/18 - [Programming/Java] - How to access controller from existing Pane in JavaFX, pane에서 해당 controller로 접근하기, java/cpp/c++/fx/gui


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



2018/12/16 - [Life/Health care] - L-Arginine 아르기닌 usage/side effects/dosage 효능/부작용/성인,소아 용법(2)

2018/12/06 - [Life/Health care] - Vitamin C 비타민 씨 usage/side effects/dosage 용법/효능/부작용

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