import java.util.Scanner;
public class Main {
public int solution(int std, int[][] stdArr) {
int ans = 0, max = Integer.MIN_VALUE;
int[] score = new int[std+1];
for(int i = 1; i <= std; i++) {
for(int j = 1; j <= std; j++) {
for(int k = 1; k <=5; k++) {
if(stdArr[i][k] == stdArr[j][k]) {
score[i]++;
break;
}
}
}
}
for(int i = 1; i <= std; i++) {
if(score[i] > max) {
max = score[i];
ans = i;
}
}
return ans;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Main T = new Main();
Scanner kb = new Scanner(System.in);
int std = kb.nextInt();
int[][] stdArr = new int[std+1][6];
for(int i = 1; i <= std; i++) {
for(int j = 1; j <= 5; j++) {
stdArr[i][j] = kb.nextInt();
}
}
System.out.println(T.solution(std, stdArr));
}
}
학생/학년 2차원 배열을 입력받고
학생 수+1 크기의 score 배열을 만들어 그중 요소의 값이 제일 큰 index번 학생을 출력하면 된다.
각 학생(i)들이 * 다른 학생(j)들과 * (1~5)학년일 때(k) 같은 값을 갖는다면
score[i]++
자기 자신과 같은 반일 경우의 예외는 제외하지 않았다. 모든 학생이 동일하게 각 학년에서 자신과 같은 반이기 때문.
'[Solved] > 코딩테스트' 카테고리의 다른 글
토마토(BFS 활용) (0) | 2023.03.29 |
---|---|
후위연산식 문제 (Stack) (0) | 2023.03.18 |
Least Recently Used (0) | 2023.03.14 |
쇠막대기 절단 문제 (Stack) (0) | 2023.03.13 |
크레인 인형뽑기 (Stack) (0) | 2023.03.11 |