C# 알고리즘 코드카타

20. 정수 내림차순으로 배치하기

잼잼재미 2023. 11. 7. 20:58

public class Solution {
    public long solution(long n) {
        long answer = n;
        int num = 0;
        
        while(true)
        {
            n = n / 10;
            num++;
            if (n == 0) break;
        }
        
        long[] nums = new long[num];
        
        for (int i = 0; i < num; ++i)
        {
            nums[i] = answer % 10;
            answer = answer / 10;
        }
        
        answer = 0;
        long empty = 0;
        
        
        for(int j = 0; j < num - 1; ++j)
        {
            for (int i = 0; i < num - 1; ++i)
            {
                if(nums[i] < nums[i + 1])
                {
                    empty = nums[i+1];
                    nums[i + 1] = nums[i];
                    nums[i] = empty;
                }
            }
        }
        
        long x = 1;
        
        for(int i = 0; i < num; ++i)
        {
            for(int j = 0; j < num - 1 - i; ++j)
            {
                x *= 10;
            }
            answer += nums[i] * x;
            x = 1;          
        }
             
        return answer;
    }
}

 

'C# 알고리즘 코드카타' 카테고리의 다른 글

22. 두 정수 사이의 합  (0) 2023.11.08
21. 하샤드 수  (0) 2023.11.08
19. 정수 제곱근 판별  (0) 2023.11.07
18. 문자열을 정수로 바꾸기  (0) 2023.11.07
17. 자연수 뒤집어 배열로 만들기  (0) 2023.11.06