본문 바로가기

c언어 스터디/HackerRank

[HackerRank] Plus Minus

Plus Minus | HackerRank

 

Plus Minus | HackerRank

Calculate the fraction of positive, negative and zero values in an array.

www.hackerrank.com

<문제>

input: 첫번째 줄에는 배열의 크기를 입력받고, 두번째 줄에는 크기만큼 원소를 입력받는다.

output: input으로 입력받은 배열 내에서 첫번째 줄에는 양수의 비율, 두번째 줄에는 음수의 비율, 세번째 줄에는 0의 비율을 출력한다.

 

<코드>

void plusMinus(int arr_count, int* arr) {
    int a=0, b=0, c=0;
    for(int i=0; i<arr_count; i++){
        if(arr[i]>0)    a++;
        else if(arr[i]==0)  c++;
        else    b++;
    }
    
    printf("%f\n%f\n%f", (double)a/arr_count, (double)b/arr_count, (double)c/arr_count);
}

 

<풀이>

양수의 개수, 음수의 개수, 0의 개수를 각자 센 다음에 마지막에 총 배열의 원소 개수로 나눠서 출력하면 비율을 구할 수 있다. 그러므로 양수 개수는 a변수에, 음수 개수는 b 변수에, 0의 개수는 c 변수에 저장했다. 그리고 매개변수로 전달받은 배열 원소의 개수인 arr_count로 각자 나눈 다음에 a, b, c, arr_count 변수 모두 int 형이므로 double 형으로 타입 캐스트 해줘서 소수점까지 출력하였다.

 

 

<실행결과>

'c언어 스터디 > HackerRank' 카테고리의 다른 글

[HackerRank] Get Node Value  (0) 2021.08.28
[HackerRank] Cycle Detection  (0) 2021.08.21
[HackerRank] Compare two linked lists  (0) 2021.08.14
[HackerRank] Repeated String  (0) 2021.08.14
[HackerRank] Equalize the Array  (0) 2021.08.05