728x90
https://www.hackerrank.com/challenges/bon-appetit/problem
Algorithms > Implementation
배열 bill과 Anna가 먹지 않은 것의 인덱스, Brian이 Anna에게 청구한 비용이 주어지면
Brian이 청구한 비용이 실제 Anna가 지불해야 할 비용이 맞는지 체크한다.
만약 맞으면 "Bon Appetit"을, 틀리면 Brian이 Anna에게 돌려줘야 할 금액을 출력한다.
코드
void bonAppetit(int bill_count, int* bill, int k, int b) {
int cost = 0;
for (int i = 0; i < bill_count; i++){
if (i == k) continue;
cost += bill[i];
}
cost /= 2;
if (cost == b) printf("Bon Appetit");
else printf("%d", b - cost);
}
설명
배열 bill과 크기, Anna가 먹지 않은 음식의 인덱스 k, Brian이 청구한 비용 b가 매개변수로 주어진다.
Anna가 지불해야 하는 실제 금액을 cost 변수로 하고, 0으로 초기화한다.
bill_count만큼 반복하는 for문에서 만약 현재 인덱스가 k와 같으면 건너뛰고, 아니면 cost에 현재 인덱스의 가격을 더한다.
for문이 종료되면 cost를 2로 나누어 Anna가 실제로 지불해야 하는 금액을 계산한다.
만약 cost가 b와 같으면 Brian이 제대로 계산한 것이므로 "Bon Appetit"을 출력하고,
아니면 Brian이 Anna에게 돌려줘야 할 금액, 즉 b에서 cost를 뺀 값을 출력한다.
728x90
'C & C++ > HackerRank' 카테고리의 다른 글
[HackerRank] Diagonal Difference (0) | 2021.10.02 |
---|---|
[HackerRank] Binary Search Tree : Insertion (0) | 2021.10.02 |
[HackerRank] Counting Sort 1 (0) | 2021.09.25 |
[HackerRank] Breaking the Records (1) | 2021.09.19 |
[HackerRank] Running Time of Algorithms (0) | 2021.09.19 |