본문 바로가기

Fundamentals/Algorithms

[해커랭크] Bill Division

문제링크

 

Bill Division | HackerRank

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

www.hackerrank.com

안나와 브라이언이라는 두 친구가 저녁 식사 후 계산서를 어떻게 나눌지 결정하는 상황입니다. 각자 자신이 소비한 항목에 대해서만 비용을 지불하기로 합니다. 브라이언이 계산서를 받아 안나가 지불해야 할 부분을 계산하게 됩니다. 이 문제에서는 브라이언의 계산이 올바른지를 판단해야 합니다. 예를 들어, 계산서에 여러 항목의 가격이 있고, 안나는 그 중 하나의 항목을 먹지 않기로 결정합니다. 브라이언이 계산을 올바르게 한 경우, 안나는 그녀의 부분에 대해 정확한 금액을 지불합니다. 만약 브라이언이 안나가 먹지 않은 항목의 비용까지 포함하여 계산한다면, 그는 안나에게 차액을 환불해야 합니다.

 

매개변수:

- bill: 각 항목의 비용을 나타내는 정수 배열

- k: 안나가 먹지 않은 항목의 0 기반 인덱스

- b: 안나가 계산서에 기여한 금액

 

풀이 :

function bonAppetit(bill, k, b) {
    const bills = bill.reduce((acc, cur, index) => index !== k ? acc+ cur: acc, 0)
    const result =  (bills/2) === b ? 'Bon Appetit' : b - (bills/2) 
    console.log(result)
}

 

특정 index를 제외한 배열 요소의 합을 구하고 조건에 따라 문구 또는 돌려줘야하는 금액을 반환합니다.

'Fundamentals > Algorithms' 카테고리의 다른 글

[해커랭크] Counting Valleys  (0) 2023.12.06
[해커랭크] Sales by Match  (0) 2023.12.05
[해커랭크] Day of the Programmer  (0) 2023.12.05
[해커랭크] Migratory Birds  (0) 2023.12.04
[해커랭크] Divisible Sum Pairs  (0) 2023.12.04