C# 알고리즘

그리디 알고리즘

잼잼재미 2023. 11. 15. 19:50

● 그리디 알고리즘
 - 각 단계에서 가장 최적인 선택을 하는 알고리즘
 - 각 단계의 최적인 선택이 최종적으로 최적인 선택이 아닐수도 있음

 

// 문제: 주어진 동전들로 특정 금액을 만드는데 필요한 최소 동전 수를 구하는 함수를 작성하세요.
public int MinCoins(int[] coins, int amount)
{
    Array.Sort(coins);
    int count = 0;

    for(int i = coins.Length - 1; i >= 0; i--)
    {
        while(amount >= coins[i])
        {
            amount -= coins[i];
            count++;
        }
    }

    if(amount > 0) return -1; 

    return count;
}

// 시간 복잡도는 O(n)
// 공간 복잡도는 O(1)

 

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

LinkedList (링크드리스트)  (0) 2023.11.16
Big-O 표기법  (0) 2023.11.15
트리 (Tree)  (0) 2023.11.15
그래프 (Graph)  (1) 2023.11.15
탐색 알고리즘  (0) 2023.11.15