HackerRank/Algorithms

[HackerRank] Implementation > Bill Division

ruming 2021. 9. 26. 23:45

https://www.hackerrank.com/challenges/bon-appetit/problem

Anna와 Brian이 밥을 먹었다. 계산할 때 Anna가 먹지 않은 음식의 값을 뺀 나머지를 Brian과 나누는데, 돈이 잘 계산됐는지 확인하면 된다. 배열 bill에 음식의 값들이 저장되고, Anna가 먹지 않은 음식의 인덱스는 k에 저장된다. b는 Brian이 Anna에게 청구한 금액인데, 맞으면 Bon Appetit를, 틀리면 Brian이 청구한 금액 - Anna가 낼 금액을 계산해서 출력한다.

 

void bonAppetit(int bill_count, int* bill, int k, int b) {
    int anna = 0;
    for(int i=0; i<bill_count; i++){
        if(i==k)    continue;
        anna += bill[i];
    }
    anna /= 2;
    if(anna == b)   printf("Bon Appetit");
    else {
        printf("%d", b-anna);
    }
}

anna가 낼 금액을 저장할 변수를 선언하고 초기화한다. bill에 저장된 금액을 더하는데 i가 k와 같을 때는 넘긴다. 더한 금액을 2로 나누고 anna와 b가 같으면 Bon Appetit를 출력, 아니면 b-anna를 출력한다.