article thumbnail image
Published 2021. 9. 29. 15:40

# Counting Sort 2 (Sorting)

[문제]

 

[코드]

vector<int> countingSort(vector<int> arr) {
    vector<int> counting(100);
    vector<int> result;
    
    for(int i = 0; i < arr.size(); i++)
        counting[arr[i]]+=1;
    
    for(int i = 0; i < 100; i++)
    {
        for(int j = 0; j < counting[i]; j++)
            result.push_back(i);
    }
    return result;
}

 

[코드설명]

Counting sort를 사용하는 문제다.

arr배열에 있는 정수 i를 카운팅하여 새로운 배열 counting을 만들었다.

이때 같은 정수를 갖는 인덱스에 1을 더하는 방식으로 생성한다.

counting배열 생성을 완료 후, 해당 내용을 풀어서 새로운 배열을 만들었다.

counting[i]에 해당하는 수만큼 반복하여 result배열에 i를 추가했다.

result배열 생성을 완료하면 반환한다.

 

[채점 결과]

 

 

 

 

 

'알고리즘' 카테고리의 다른 글

[HackerRank] Diagonal Difference  (0) 2021.10.08
[HackerRank] A Very Big Sum  (0) 2021.09.29
[HackerRank] Compare the Triplets  (0) 2021.09.25
[HackerRank] Cycle Detection  (0) 2021.09.25
[HackerRank] Simple Array Sum  (0) 2021.09.18
복사했습니다!