사용 알고리즘: 순조부 순열
사용 언어: java
import java.util.*;
class Solution {
int 학생수, 종목수, answer;
public int solution(int[][] ability) {
학생수 = ability.length;
종목수 = ability[0].length;
int[] picks = new int[종목수];
boolean[] visit = new boolean[학생수];
permu(0 ,picks,visit, ability);
return answer;
}
public void permu(int idx, int[] picks,boolean[] visit, int[][] ability) {
if(idx == 종목수) {
int sum =0;
for(int p : picks)
sum += p;
answer = Math.max(answer, sum);
return;
}
//
for(int i=0; i<학생수; i++) {
if(!visit[i]) {
visit[i] = true;
picks[idx] = ability[i][idx];
permu(idx+1, picks,visit, ability);
picks[idx] = 0;
visit[i] = false;
}
}
}
}
스무스~하게
'알고리즘 > 프로그래머스' 카테고리의 다른 글
모음사전 (0) | 2024.12.09 |
---|---|
쿼드압축 후 개수 세기 (1) | 2024.12.09 |
[PCCP 모의고사 #1] 1번 - 외톨이 알파벳 (0) | 2024.12.02 |
거리두기 확인하기 (0) | 2024.12.02 |
교점에 별 만들기 -- 마지막 테케가 안 됨 (0) | 2024.12.01 |