가장 큰 생일 초의 개수가 몇 개인지 맞추는 문제다.
초의 사이즈가 담긴 배열을 주고, 그 안에서 가장 큰 초의 개수를 찾아내면 된다.
코드
int birthdayCakeCandles(int candles_count, int* candles) {
int max=candles[0], i, flag=0;
for (i=1; i<candles_count; i++){
if(max < candles[i]){
max = candles[i];
}
}
for(i=0; i<candles_count; i++) {
if(candles[i] == max) flag++;
}
return flag;
}
배열을 두번 돌지 않게 한번에 개수를 알아내고 싶었는데 실패했다.
max라는 가장 큰 초의 길이를 배열할 변수와, 그 개수를 셀 flag 변수를 초기화했다.
첫번째 for문으로 가장 큰 초의 길이를 max에 저장하고, 두번째 for문에서 max 개수가 몇개인지 센다.
초의 개수인 flag를 반환한다.
'HackerRank > Algorithms' 카테고리의 다른 글
[HackerRank C] Implementation : Sales by Match (0) | 2021.07.28 |
---|---|
[HackerRank C] Warmup : Plus Minus (0) | 2021.07.28 |
[HackerRank C] Implementation : Subarray Division (0) | 2021.07.18 |
[HackerRank C] Warmup : Mini-Max Sum (0) | 2021.07.18 |
[HackerRank C] Strings : HackerRank in a String! (0) | 2021.07.11 |