728x90
https://www.hackerrank.com/challenges/missing-numbers/problem
Algorithms > Search
정수 배열 arr, brr가 주어지면 brr에 있지만 arr에 없는 숫자들을 찾아 배열로 반환한다.
코드
vector<int> missingNumbers(vector<int> arr, vector<int> brr) {
vector<int> count(200000);
vector<int> res;
for (int i = 0; i < brr.size(); i++) count[brr[i]]++;
for (int i = 0; i < arr.size(); i++) count[arr[i]]--;
for (int i = 0; i < count.size(); i++) {
if (count[i] > 0) res.push_back(i);
}
return res;
}
설명
arr, brr에 있는 숫자를 체크할 count와 답을 저장할 res를 선언한다.
두 개의 for문을 이용해 brr에 있는 숫자들은 count의 각 인덱스에 더하고, arr에 있는 숫자들은 뺀다.
그렇게 하면 count에서 겹치는 숫자들의 값은 0이 되고, brr에만 있는 숫자들의 값은 0보다 커지게 된다.
과정이 끝나면 별도의 for문을 이용해 count에 저장된 0보다 큰 값들의 인덱스를 res로 옮겨주고 반환한다.
728x90
'C & C++ > HackerRank' 카테고리의 다른 글
[HackerRank] Utopian Tree (0) | 2021.11.28 |
---|---|
[HackerRank] Sherlock and Squares (0) | 2021.11.21 |
[HackerRank] Closest Numbers (0) | 2021.11.21 |
[HackerRank] Designer PDF Viewer (0) | 2021.11.05 |
[HackerRank] Correctness and the Loop Invariant (0) | 2021.11.05 |