Migratory Birds | HackerRank
Determine which type of bird in a flock occurs at the highest frequency.
www.hackerrank.com
<문제>
input: 첫번째 줄에는 arr배열의 크기가 입력된다. 그 크기는 관측된 새의 수이다.
두번째 줄에는 장소에서 보인 새의 종류가 배열로 입력받는다.
output: 가장 많이 발견된 새의 종류를 리턴한다. 그리고 발견된 새의 수가 동일한 경우, 더 수가 작은 id를 리턴한다.
<코드>
int migratoryBirds(int arr_count, int* arr) {
int counter[6] = {0}, result = 0, max = 0;
for (int i = 0; i < arr_count; ++i) {
int id = arr[i];
counter[id]++;
if (counter[id] > max) {
max = counter[id];
result = id;
}
else if (counter[id] == max) {
result = fmin(result, id);
}
}
return result;
}
<풀이>
장소의 id별로 새의 수를 저장하기 위해 배열 counter[6]을 선언하고, id 별로 배열에 저장한다.
그리고 max변수와 비교하여 만약 counter[id]의 값이 원래 저장되어있던 max보다 크면 값을 바꾸고, 만약 같으면 result와 id 값 중 더 작은 것을 result로 저장하고 result를 리턴하여 문제를 풀 수 있었다.
<실행결과>

'c언어 스터디 > HackerRank' 카테고리의 다른 글
| [HackerRank] Reverse a linked list (0) | 2021.07.22 |
|---|---|
| [HackerRank] Delete a Node (0) | 2021.07.18 |
| [HackerRank] Minimum Distances (0) | 2021.07.10 |
| [HackerRank] Bill Division (0) | 2021.07.10 |
| [HackerRank] Tree- Binaery Search Tree: Insertion (0) | 2021.06.25 |