Archive/Code_HackerRank 2018. 1. 17. 00:49

[HackerRank]Birthday Cake Candles

You are in-charge of the cake for your niece's birthday and have decided the cake will have one candle for each year of her total age. When she blows out the candles, she’ll only be able to blow out the tallest ones.

For example, if your niece is turning  years old, and the cake will have  candles of height , she will be able to blow out  candles successfully, since the tallest candle is of height  and there are  such candles.

Complete the function birthdayCakeCandles that takes your niece's age and an integer array containing height of each candle as input, and return the number of candles she can successfully blow out.

Input Format

The first line contains a single integer, , denoting the number of candles on the cake. 
The second line contains  space-separated integers, where each integer  describes the height of candle .

Constraints

Output Format

Print the number of candles the can be blown out on a new line.

Sample Input 0

4
3 2 1 3

Sample Output 0

2

Explanation 0

We have one candle of height , one candle of height , and two candles of height . Your niece only blows out the tallest candles, meaning the candles where . Because there are  such candles, we print  on a new line.



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
32
33
34
#include <bits/stdc++.h>
 
using namespace std;
 
int birthdayCakeCandles(int n, vector <int> ar) {
    int ans = 0;
    int tmp = ar[0];
    for(int i=0; i<n; i++){
        if(tmp < ar[i]){
            tmp = ar[i];
            ans = 0;
        }
        
        if(tmp == ar[i])
            ans++;
        
    }
    
    return ans;
    
}
 
int main() {
    int n;
    cin >> n;
    vector<int> ar(n);
    for(int ar_i = 0; ar_i < n; ar_i++){
       cin >> ar[ar_i];
    }
    int result = birthdayCakeCandles(n, ar);
    cout << result << endl;
    return 0;
}
 
cs



Comment


역시 ar.size() 를 쓸 필요 없이 n값이 주어지기때문에 반복문을 돌리기 편하다.

가장 큰 초의 갯수를 세면 된다. 현재 가장 큰 초보다 더 큰 초가 나오면 ans를 0으로 초기화하고, 그 후 같은 크기의 초가 나올때마다 ans를 1씩 올려준 후 정답을 반환했다.

'Archive > Code_HackerRank' 카테고리의 다른 글

[HackerRank]Grading Students  (0) 2018.01.18
[HackerRank]Time Conversion  (0) 2018.01.17
[HackerRank]Mini-Max Sum  (0) 2018.01.17
[HackerRank]Staircase  (0) 2018.01.17
[HackerRank]Plus Minus  (0) 2018.01.17