Algorithm/문제
23. 임시반장 정하기
챛채
2023. 6. 27. 16:26


2차원 배열을 생성하여 이중for문으로 문제를 푸는데
arr[n+1][6] //1번부터 사용할 거니까 n+1
for i(1~5) //명수
for j(1~5) //명수
for k (1~5) //학년
a[i][k] == a[j][k] //i번 학생의 k학년과 j번 학생의 k학년이 같은지 비교 참이면 cnt ++;
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public int solution(int n, int[][] arr) {
int answer=0, max=Integer.MIN_VALUE;
for (int i = 1; i <= n; i++) {
int cnt=0; //같은 반 했던 횟수 count
for (int j = 1; j <= n; j++) {
for (int k = 1; k <= 5; k++) {
//1학년 때부터 5학년 때까지
if (arr[i][k] == arr[j][k]) {
cnt ++;
break; //주의
}
}
}
if (cnt > max) {
max=cnt;
answer=i; //최댓값을 만드는 i번 학생
}
}
return answer;
}
public static void main(String[] args){
Main T = new Main();
Scanner kb = new Scanner(System.in);
int n=kb.nextInt();
int[][] arr =new int [n+1][6];
for (int i = 1; i < n; i++) {
for (int j = 1; j <= 5; j++) {
arr[i][j]=kb.nextInt();
}
}
System.out.println(T.solution(n, arr));
}
}