정해진 예산 안에서 가장 비싼 값으로 키보드와 드라이버를 구매해야 한다. 예산보다 넘으면 -1을 출력하고 아니면 예산 안에서 가장 비싼 값을 출력한다.
int getMoneySpent(int keyboards_count, int* keyboards, int drives_count, int* drives, int b) {
int cost = 0, max = 0;
for(int i=0; i<keyboards_count; i++){
for(int j=0; j<drives_count; j++){
if(keyboards[i] + drives[j] <= b){
cost = keyboards[i] + drives[j];
if(cost > max) max = cost;
}
}
}
if(cost == 0) return -1;
return max;
}
키보드와 드라이버 값을 이중 for문을 이용해 순서대로 더한다. 예산을 넘지 않을 때 cost에 값을 저장하고 cost와 max를 비교해 예산 이하에서 가장 큰 값을 max에 저장한다. cost에 값이 들어가지 않았으면 예산을 넘는다는 소리이므로 -1을 반환하고, 아니면 max를 반환한다.
'HackerRank > Algorithms' 카테고리의 다른 글
[HackerRank] Warmup > Staircase (0) | 2021.11.08 |
---|---|
[HackerRank] Implementation > Counting Valleys (0) | 2021.11.07 |
[HackerRank] Implementation > Cats and a Mouse (0) | 2021.10.04 |
[HackerRank] Implementation > Bill Division (0) | 2021.09.26 |
[HackerRank] Warmup > A Very Big Sum (0) | 2021.09.26 |