중요사항
수포자 3명이 찍는 방식으로 모의고사를 풀었을때 가장 높은 점수가 나온 사람은 누구인가 만약 높은 점수가 동일할시 오름차순정렬을한다
cnt,save
배열에 맞춘갯수를 저장cnt
배열을 sort()
사용하여 가장 높은 점수를 구함answer
배열의 크기를 구하고 생성save
배열과 cnt[2]
를 비교하여 answer에 값 추가하여 반환import java.util.*;
class Solution {
public int[] solution(int[] answers) {
int[] su1 = {1,2,3,4,5};
int[] su2 = {2,1,2,3,2,4,2,5};
int[] su3 = {3,3,1,1,2,2,4,4,5,5};
int[] cnt = {0,0,0};
int[] save = {0,0,0};
for(int i=0; i<answers.length; i++){
if(answers[i]==su1[i%5]){
cnt[0]++;
save[0]++;
}
if(answers[i]==su2[i%8]){
cnt[1]++;
save[1]++;
}
if(answers[i]==su3[i%10]){
cnt[2]++;
save[2]++;
}
}
Arrays.sort(cnt);
int arrlen = cnt[2]==cnt[1]? cnt[2]==cnt[0]? 3 : 2 :1;
int[] answer = new int[arrlen];
arrlen=0;
for(int y=0; y<cnt.length; y++){
if(save[y]==cnt[2])answer[arrlen++]=y+1;
}
return answer;
}
}
최대값을 어떻게 구하지 하다 sort()
를 사용해서 최대값을 구했는데 다른 사람 풀이를 보니까 Math.max()
를 이중으로 사용해서 최대값을 구했다 수포자가 많았다면 sort()
가 편할수도있었지만 3명이라 좀 더 간단하게 표현할려면 Math.max()
사용한게 좋지않을까 한다 풀었던 문제중에서 다른분풀이를 보고 Math.max()
써서 풀어 더 간단하다고 한거같은데 이제 좀 기억해서 다음번에는 꼭 썻으면 좋겠다😂