Algorithm/문제
24. 멘토링 ★★★
챛채
2023. 7. 18. 15:32
4중 for문 사용해야 한다.
n=4, m=3
먼저 멘토, 멘티로 짝지을 수 있는 모든 경우의 수 체크 (멘토, 멘티)
짝지은 멘토, 멘티에서 조건에 만족하는지 체크
멘토, 멘티의 등수를 찾고 모든 테스트에서 멘토가 앞선다면 count++
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public int solution(int[][] arr, int n, int m) {
int answer = 0;
for (int i = 1; i <= n; i++) { //멘토
for (int j = 1; j <= n; j++) { //멘티
int cnt = 0;
//(멘토, 멘티) 모든 경우의 수에서 조건에 만족하는 것 체크
for (int k = 0; k < m; k++) { //0번 테스트 ~ 2번 테스트까지 (m=3)
int pi = 0, pj =0; //각 학생의 등수 저장
for (int s = 0; s < n; s++) { //0등~3등까지 (n=4)
if(arr[k][s] == i) pi = s; //멘토 등수
if(arr[k][s] == j) pj = s; //멘티 등수
}
if (pi < pj) cnt++; //등수가 앞서는 경우
}
if (cnt == m) { //멘토가 모든 경우에 등수가 앞선다면
answer++;
}
}
}
return answer;
}
public static void main(String[] args){
Main T = new Main();
Scanner kb = new Scanner(System.in);
int n=kb.nextInt(); //반 학생 수
int m=kb.nextInt(); //수학테스트 횟수
int[][] arr =new int [m][n];
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
arr[i][j]=kb.nextInt();
}
}
System.out.println(T.solution(arr, n, m));
}
}