알고리즘

[알고리즘]nC4를 이용한 알고리즘과 nP4를 이용한 알고리즘(경우의수)

seulhasony 2023. 6. 19. 12:57

순위가 상관있는 알고리즘 = nP4

순위가 상관없는 무작위 알고리즘 = nC4 ex) n명 중에 각 다른 4명을 뽑는 경우는?

 

1.nC4 알고리즘

n*(n-1)*(n-2)*(n-3) / (1*2*3*4)  ==  n*(n-1)*(n-2)*(n-3) / 4!

 

public int solution(String[] names){
    Set<String> set = new HashSet<String>(Arrays.asList(names));
    int n = set.size();
    int m = 4;

    long numerator = 1;
    long denominator = 1;

    for(int i =0; i < m; i++){
        numerator *= (n-i);
        denominator *= (i+1);
    }
    return (int) (numerator/denominator);
}