[HackerRank/C++] Chocolate Feast
2023. 2. 7. 07:51ㆍ코딩테스트 해커랭크/Algorithms -Easy
현재 n의 소지금을 가지고 있고, 초콜릿의 가격이 c이며 초콜릿을 먹고 남은 포장지 m개가 있다면 새 초콜릿 1개로 교환할 수 있다
이 때 먹을 수 있는 초콜릿의 수를 return 한다
int chocolateFeast(int n, int c, int m)
{
int result = n / c;
int wrapper = n / c;
while (m <= wrapper)
{
result += wrapper / m;
wrapper = (wrapper / m) + (wrapper % m);
}
return result;
}
예전에 많이 돌아다니던 콜라병 문제와 꽤나 비슷한 유형이다
초콜릿의 포장지 수는 n / c이며 그만큼 초콜릿을 먹을 수 있으므로 result와 wrapper의 초기값은 n / c로 초기화 한다
이후 포장지의 수가 교환 갯수 m보다 적어질때 까지 반복문을 돌며 wrapper / m을 result에 더해주고, wrapper의 수는 교환하고 새로 먹은 초콜릿 수 + 교환하고 남은 초콜릿 수가 된다
반복문이 끝나면 result를 return 한다
'코딩테스트 해커랭크 > Algorithms -Easy' 카테고리의 다른 글
| [HackerRank/C++] Lisa's Workbook (0) | 2023.02.07 |
|---|---|
| [HackerRank/C++] Service Lane (0) | 2023.02.07 |
| [HackerRank/C++] Halloween Sale (0) | 2023.02.07 |
| [HackerRank/C++] Minimum Distances (0) | 2023.02.07 |
| [HackerRank/C++] Beautiful Triplets (0) | 2023.02.07 |