while문을 돌리며 정답의 수만큼 while문이 돌아가고
1,2,3번 수포자들은 각 개수로 나머지 연산을 하여 계속해서 돌아가도록 하였다.
그 후 맞춘 개수의 최대값을 뽑아서 그 수와 같은 정답률인 사람을 list에 넣고 배열로 바꿨다.
import java.util.*;
import java.io.*;
class Solution {
public int[] solution(int[] answers) {
int person_1[] ={1,2,3,4,5};
int person_2[] ={2,1,2,3,2,4,2,5};
int person_3[] ={3,3,1,1,2,2,4,4,5,5};
int p_n_1 = 0,p_n_2=0,p_n_3=0; //수포자의 찍는 방식이 몇번째인지
int num_1=0,num_2=0,num_3=0; //몇개 맞았나 체크
int num = answers.length;
int cnt=0;
while(cnt < num){
System.out.println("cnt "+cnt);
p_n_1=cnt%person_1.length;
p_n_2=cnt%person_2.length;
p_n_3=cnt%person_3.length;
if(answers[cnt]==person_1[p_n_1])
num_1++;
if(answers[cnt]==person_2[p_n_2])
num_2++;
if(answers[cnt]==person_3[p_n_3])
num_3++;
cnt++;//answer위치
}
int max = Math.max(num_1,num_2);
max = Math.max(max,num_3);
ArrayList<Integer> answer = new ArrayList<>();
int array_cnt=0;
if(max == num_1)
answer.add(1);
if(max == num_2)
answer.add(2);
if(max == num_3)
answer.add(3);
int[] ans = new int[answer.size()];
for(int i=0;i<answer.size();i++){
ans[i]=answer.get(i);
}
return ans;
}
}