작성자 없음
작성자 정보가 삭제된 글입니다.
작성
·
214
0
import java.util.*;
class Main {
public int solution(int n, int[][] arr){
int answer=0, max=0;
for(int i=0; i<n; i++){
int cnt=0;
for(int j=0; j<n; j++){
for(int k=0; k<n; k++){
if(arr[i][k]==arr[j][k]){
cnt++;
break;
}
}
}
if(cnt>max){
max=cnt;
answer=i+1;
}
}
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][n];
for(int i=0; i<n; i++){
for(int j=0; j<n; j++){
arr[i][j]=kb.nextInt();
}
}
System.out.print(T.solution(n, arr));
}
}
답변 1
0
안녕하세요^^
위에 코드에서 i변수는 학생수이고, j변수는 1학년부터 5학년까지를 의미합니다.
int[][] arr=new int[n+1][6];
그래서 arr배열의 행은 n+1로 해서 학생수만큼 행수가 나와야 해서이고, 열은 1학년부터 5학년으로 정해져 있으니 6의 크기로만 잡은것입니다.
중간에 break 를 해야 하는 이유는 i 학생과 j학생이 2학년과 3학년때 같은 반을 했어도 한 번만 카운팅해야 해서입니다. 이 부분은 영상에서 설명했으니 다시 자세히 보시기 바랍니다.