코드
public int[] solution(int[] answers) {
//수포자 답안
int no1[] = {1,2,3,4,5};
int no2[] = {2,1,2,3,2,4,2,5};
int no3[] = {3,3,1,1,2,2,4,4,5,5};
//각 수포자별 정답 갯수
int no1_cnt = 0;
int no2_cnt = 0;
int no3_cnt = 0;
for(int i=0; i<answers.length; i++) {
if(answers[i] == no1[i%no1.length]) no1_cnt ++;
if(answers[i] == no2[i%no2.length]) no2_cnt ++;
if(answers[i] == no3[i%no3.length]) no3_cnt ++;
}
//최대 정답 갯수 확인
int max = 0;
if(no1_cnt >= no2_cnt) {
max = no1_cnt;
} else {
max = no2_cnt;
}
if(max < no3_cnt) {
max = no3_cnt;
}
//최대 정답자 수 확인
int max_no = 0;
if(no1_cnt == max) max_no++;
if(no2_cnt == max) max_no++;
if(no3_cnt == max) max_no++;
//최대 정답자 추출 배열 선언
int[] answer = new int[max_no];
max_no = 0; //초기화
if(no1_cnt == max) {
answer[max_no] = 1;
max_no++;
}
if(no2_cnt == max) {
answer[max_no] = 2;
max_no++;
}
if(no3_cnt == max) {
answer[max_no] = 3;
max_no++;
}
return answer;
}
public static void main(String args[]) {
Solution sol = new Solution();
int[] val = {1,2,3,4,5};
System.out.println(sol.solution(val));
}
설명
배열 answers의 length만큼 수포자 no1, no2, no3의 답을 반복해서 비교를 한다.
각 no1, no2, no3의 length는 다르므로 (i%no1.length)로 각 no1, no2, no3의 배열을 반복한다.
즉, answers.length = 8일경우
index = 0일때, no1[0]
index = 1일때, no1[1]
index = 2일때, no1[2]
index = 3일때, no1[3]
index = 4일때, no1[4]
index = 5일때, no1[0]
index = 6일때, no1[1]
index = 7일때, no1[2]
[프로그래머스][Level1][(2019 카카오)크레인 인형뽑기 게임] (0) | 2021.03.08 |
---|---|
[프로그래머스][Level1][(해쉬)완주하지 못한 선수] (0) | 2021.03.08 |
[프로그래머스][Level1][무슨 요일인가] (0) | 2021.03.07 |
[프로그래머스][Level1][(정렬)K번째수] (0) | 2021.03.07 |
[프로그래머스][Level1][행렬의 덧셈] (0) | 2021.03.07 |