인프런 커뮤니티 질문&답변
코드 피드백 부탁 드립니다
작성
·
294
0
import java.util.*;
public class Main {
public int solution(int n, int[][] arr) {
int answer = 0;
int[] stu = new int[n];
int cnt;
int sum = 0;
for (int i = 0; i < n; i++) {
cnt = 0;
for (int j = 0; j < 5; j++) {
for (int k = 0; k < n; k++) {
if (i != j && arr[i][k] == arr[j][k]) {
cnt++;
stu[i] += cnt;
cnt = 0;
}
}
}
sum = Math.max(sum, stu[i]);
if (sum == stu[i]) {
answer = i + 1;
}
}
return answer;
}
public static void main(String[] args) {
Main T = new Main();
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[][] arr = new int[n][5];
for (int i = 0; i < n; i++) {
for (int j = 0; j < 5; j++) {
arr[i][j] = sc.nextInt();
}
}
System.out.print(T.solution(n, arr));
}
}
퀴즈
앞에 있는 모든 학생보다 키가 커야 보이는 '보이는 학생' 문제에서, 효율적인 풀이법의 핵심 아이디어는 무엇일까요?
모든 학생의 키를 서로 비교한다.
현재까지 본 학생 중 가장 큰 키를 추적한다.
가장 큰 학생 한 명만 찾는다.
학생들의 키를 오름차순으로 정렬한다.





