작성
·
240
0
solution 메서드에서 i와 j가 같은 경우를 강의에서 말씀해주신 대로 상관하지 않아도 되지만 연산 횟수를 줄여보고 싶었습니다.
그래서 for(int j = 1; j<=n; j++) 바로 밑 줄인 8번라인에
if (i == j) {
continue;
}
이 3줄만 추가하고 나머지 코드는 수정을 안 했는데 오답이 뜹니다.
어떤 곳에 영향을 끼쳐 오답이 되게 되는지 생각이 나지 않아서 질문 드립니다ㅠ
답변 5
0
0
0
if else 문을 추가해주지 않아서 그런 것 같습니다.
제 풀이 공유해드려요
import java.util.*;
class Main{
public int solution(int n, int[][] arr) {
int answer = 0;
int[] matchNum = new int[n];
int maxNum = 0;
int maxIndex = 0;
for(int i=0; i<n; i++) {
for(int j=0; j<n; j++) {
if(i==j) {
continue;
} else {
for(int k=0; k<5; k++) {
if(arr[i][k] == arr[j][k]) {
matchNum[i]++;
break;
}
}
}
}
}
for (int i=0; i<matchNum.length; i++) {
if (matchNum[i] > maxNum) {
maxNum = matchNum[i];
maxIndex = i;
}
}
answer = maxIndex + 1;
return answer;
}
public static void main(String[] args) {
Main T = new Main();
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 j=0; j<5; j++) {
arr[i][j] = in.nextInt();
}
}
in.close();
System.out.println(T.solution(n, arr));
}
}
0
0