[HackerRank/C++] Taum and B'day

2023. 2. 7. 07:50코딩테스트 해커랭크/Algorithms -Easy

사야할 검은 선물의 갯수 b, 하얀 선물의 갯수 w, 검은 선물의 가격 bc, 하얀 선물의 가격 wc,

 

마지막으로 검은 선물과 하얀 선물을 교환할 때 드는 추가비용 z를 변수로 받을 때

 

선물을 전부 샀을때 가장 낮은 비용을 return 한다

long taumBday(int b, int w, int bc, int wc, int z)
{
    if (bc > wc + z)
        bc = wc + z;
    else if (wc > bc + z)
        wc = bc + z;
    
    return (long)b * (long)bc + (long)w * (long)wc;
}

만약 bc의 구매비용이 wc의 구매비용과 교환비용 z를 합친것 보다 크다면 bc는 wc + z의 가격으로 더 저렴하게 살 수 있으므로 bc의 값을 wc + z로 변경하고 반대의 경우도 마찬가지로 변경해 준다

 

그리고 갯수b 와 가격 bc, 갯수w와 가격 wc를 각각 곱한후 더한 값을 return 한다

 

반환형이 long 자료형이며 매개변수로 받을 때 int형으로 받았으므로 오버플로우를 대비해 연산 후가 아닌 연산 전에 long 자료형으로 형변환 한 후 연산을 진행한다