개발공부/코딩테스트 연습문제
[프로그래머스] 모의고사
ku-na
2022. 1. 7. 11:56
문제 설명과 제한조건

풀이
import java.util.ArrayList;
import java.util.Arrays;
class Solution {
public int[] solution(int[] answers) {
int[][] poza = {{1,2,3,4,5},
{2,1,2,3,2,4,2,5},
{3,3,1,1,2,2,4,4,5,5}
};
int[] score = {0,0,0};
int[] answer;
int max;
int count = 0;
for(int i = 0; i < answers.length; i++){
if(poza[0][i%5] == answers[i]) score[0]++;
if(poza[1][i%8] == answers[i]) score[1]++;
if(poza[2][i%10] == answers[i]) score[2]++;
}
max = Math.max(score[0], Math.max(score[1], score[2]));;
for(int i = 0; i < score.length; i++){
if(score[i] == max) count++;
}
answer = new int[count];
count = 0;
for(int i = 0; i < score.length; i++){
if(score[i] == max) {
answer[count] = i+1;
count++;
}
}
return answer;
}
}
++
사실 리스트로 풀고 싶어서 이것 저것 시도하다 시간이 엄청 오래 걸렸다.
3번까지 없다보니 그리고 배열로 반환하다보니.. 하드코딩이 돼서 마음이 아프다.
1. max = Math.max(score[0], Math.max(score[1], score[2]));
최댓값을 구하는 문제 기본 score[1] 과 score[2]를 비교해서 높은 값을 score[0] 과 비교하는 방법인 것 같다.
사실 비교 갯수가 많지 않아서 다행이었다...