DINGA DINGA
article thumbnail
Published 2021. 11. 28. 16:07
[HackerRank] Missing Numbers C & C++/HackerRank
728x90

https://www.hackerrank.com/challenges/missing-numbers/problem

 

Missing Numbers | HackerRank

Find the numbers missing from a sequence given a permutation of the original sequence

www.hackerrank.com

 

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