모의고사
수포자 학생들이 3명의 찍는 방식
answers : 1번 문제부터 마지막 문제까지의 정답이 순서대로 들어있는 배열
가장 많은 문제를 맞힌 사람이 누구인지 배열에 담아 return
입출력 예시
answers | return |
---|---|
[1, 2, 3, 4, 5] | [1] |
[1, 3, 2, 4, 2] | [1, 2, 3] |
class Solution {
public int[] solution(int[] answers) {
// 1번 풀이대로 ArrayList부터 생성
ArrayList<Integer> memberOfMaxScore = new ArrayList<>();
// 2번 수포자 패턴 2차원 배열에 할당
int[][] supoPatterns = {
{1, 2, 3, 4, 5}, // 0 -> 1번
{2, 1, 2, 3, 2, 4, 2, 5}, // 1 -> 2번
{3, 3, 1, 1, 2, 2, 4, 4, 5, 5} // 2 -> 3번
};
// 3, 4번 실행
int[] scores = new int[3];
int n = answers.length;
for (int i = 0; i < n; i++) {
for (int j = 0; j < supoPatterns.length; j++) {
int supoN = supoPatterns[j].length;
if (answers[i] == supoPatterns[j][i % supoN]) {
scores[j]++;
}
}
}
// 5번 실행
int maxScore = Math.max(scores[0], Math.max(scores[1], scores[2]));
for (int i = 0; i < scores.length; i++) {
if (maxScore == scores[i]) {
memberOfMaxScore.add(i+1);
}
}
// 6번 리턴
return memberOfMaxScore.stream().mapToInt(Integer::intValue).toArray();
}
}
#99클럽 #코딩테스트 준비 #개발자 취업 #항해99 #TIL