작성자 없음
작성자 정보가 삭제된 글입니다.
작성
·
302
·
수정됨
0
예시 입력 이 외 다른 값으로 입력해도 올바른 값이 나오는데 오답이 나오는 이유가 무엇일까요...?
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int[][] arr = new int[n][5];
for (int i = 0; i < n; i++) {
for (int t = 0; t < 5; t++) {
arr[i][t] = in.nextInt();
}
}
int[] result = new int[n];
for (int i = 0; i < n; i++) {
for (int t = 0; t < 5; t++) {
for (int j = 0; j < n; j++) {
if (i == j) continue;
if (arr[i][t] == arr[j][t]) {
result[i]++;
break;
}
}
}
}
int max_index = 0;
for (int i = 0; i < result.length; i++) {
if (result[i] > result[max_index]) {
max_index = i;
}
}
System.out.print(max_index + 1);
}
예시 입력을 넣으면
5
2 3 1 7 3
4 1 9 6 8
5 5 2 4 4
6 5 2 6 7
8 4 2 2 2
학생 순서대로 학년마다 같은 반 이였던 적이 있는 학생이면 +1을 해서 result 배열에 넣어주었습니다.
[0, 1, 2, 3, 1]
마지막으로 result 배열 안에 가장 큰 수를 가진 인덱스에 +1을 해서 출력했습니다.
4
답변 1
0
안녕하세요^^
result[i] 가 i번 학생과 같은 반을 한 학생수인 걸로 해석됩니다.
만약 입력이
2
1 2 3 4 5
1 2 3 4 5
라고 입력되면 위에 코드는 result = [5, 5] 라는 결과가 나옵니다.