Leetcode/Top 100 Liked

[Misc][Medium] 75. Sort Colors

자전거통학 2024. 4. 27. 22:32

https://leetcode.com/problems/sort-colors/description

 

Q. 주어진 배열을 각각 R, G, B color값을 의미한다. 

 이 배열을 정렬하라. 

 

 

Solution. 

 count sort의 좋은 예시. 

 

 각 값을 카운팅 하고 그 숫자대로 배열을 다시 채운다. 

 

public void SortColors(int[] nums) 
{        
    int t0 = 0, t1 = 0, t2 = 0;
    for(int q = 0; q < nums.Length; ++q)
    {
        if(nums[q] == 0)        ++t0;
        else if(nums[q] == 1)   ++t1;
        else ++t2;
    }

    for(int q = 0; q < nums.Length; ++q)
    {
        if(q < t0)          nums[q] = 0;
        else if(q < t0+t1)  nums[q] = 1;
        else nums[q] = 2;
    }
}

 

 

적절한 결과.