HackerRank/Algorithms

[HackerRank C] Warmup : Birthday Cake Candles

ruming 2021. 7. 28. 01:56

가장 큰 생일 초의 개수가 몇 개인지 맞추는 문제다.

초의 사이즈가 담긴 배열을 주고, 그 안에서 가장 큰 초의 개수를 찾아내면 된다.

 

코드

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를 반환한다.