본문 바로가기

c언어 스터디/HackerRank

[HackerRank] Bill Division

Bill Division | HackerRank

 

Bill Division | HackerRank

Determine whether or not Brian overcharged Anna for their split bill.

www.hackerrank.com

 

<문제>

 

bonAppetit()함수는 돈 계산이 공평하게 되면 Bon Appetit을 출력하고, 아니면 Brian이 Anna에게
줘야할 돈의 액수를 정수로 출력해야한다.
bill: 주문한 물건의 비용을 배열로 저장
k: Anna가 먹지 않은 음식의 개수
b: Anna가 낸 돈
input: 첫번째 줄에는 음식의 개수 n 과 Anna가 먹지 않은 음식 개수 k가 입력받는다.
두번째 줄에는 음식들의 가격이 bill 배열에 입력된다.
세번째 줄에는 Brian이 Anna에게 받은 돈이 입력된다.

 

<코드>

void bonAppetit(int bill_count, int* bill, int k, int b) {
    int sum=0;

    for(int i=0;i<bill_count;i++)
    {
        if(i!=k)
            sum+=bill[i];

    }
    ((sum/2)==b) ? printf("Bon Appetit") : printf("%d",(b-(sum/2)));
 
}

 

<코드 풀이>

for 루프를 통해 음식의 개수 bill_count만큼 반복하고, sum에 bill[i]를 더해 가격의 총합을 구한다.
만약 sum을 2로 나눈 것이 Anna가 낸 돈 b와 일치한다면 Bon Appetit을 출력하고 아니라면 b에서 sum/2를 뺀 값을 출력한다.

 

<실행결과>