Electronics Shop | HackerRank
Determine the most expensive Keyboard and USB drive combination one can purchase within her budget.
www.hackerrank.com
<문제>


input) 첫번째 줄에는 차례대로 b, n, m / 예산, keyboard의 개수, USB의 개수를 입력받는다.
두번째 줄에는 keyboard의 가격, 세번째 줄에는 USB의 가격을 입력받는다.
output) 함수 getmoneyspent()를 통해 keyboard 하나, USB 하나를 살 때 예산 내에서 최대로 사용될 수 있는 가격을 출력한다.
<코드>
int getMoneySpent(int keyboards_count, int* keyboards, int drives_count, int* drives, int b) {
int s = -1;
for(int i=0; i<keyboards_count; i++)
{
for(int j=0; j<drives_count; j++)
{
if((keyboards[i] + drives[j] <= b) && (keyboards[i] + drives[j] > s))
{
s = keyboards[i] + drives[j];
}
}
}
return s;
}
<코드 풀이>
중첩 for문을 이용해 외부루프는 keyboard의 개수만큼, 내부루프는 USB의 개수만큼 반복하여 keyboards[i]+drives[j]를 구한다. 구한 값이 예산 b보다 작거나 같고, s보다 크면 s의 값을 keyboards[i]+drives[j]으로 바꾼다.
마지막으로 s를 리턴하여 만약 if조건식을 만족하는 경우가 없다면 함수는 -1을 리턴하고, 만족한다면 예산 내에서 가장 큰 가격인 s를 리턴한다.
<결과>

'c언어 스터디 > HackerRank' 카테고리의 다른 글
| [HackerRank] Tree- Binaery Search Tree: Insertion (0) | 2021.06.25 |
|---|---|
| [HackerRank] Tree- Level Order Traversal (0) | 2021.06.25 |
| [HackerRank] Subarray Division (0) | 2021.06.25 |
| [HackerRank] Breaking the Records (0) | 2021.05.28 |
| [HackerRank] Tree- Height of a Binary Tree (0) | 2021.05.28 |