
나의 풀이
import java.util.List;
import java.util.ArrayList;
class Solution {
public List<Integer> solution(int[] answers) {
int[] number1 = {1, 2, 3, 4, 5};
int[] number2 = {2, 1, 2, 3, 2, 4, 2, 5};
int[] number3 = {3, 3, 1, 1, 2, 2, 4, 4, 5, 5};
int[] score = new int[3];
for(int i = 0; i < answers.length ; i++){
if(answers[i] == number1[i % 5]){
score[0] ++;
}
if (answers[i] == number2[i % 8]){
score[1] ++;
}
if (answers[i] == number3[i % 10]){
score[2] ++;
}
}
int maxScore = Math.max(score[0], Math.max(score[1], score[2]));
List<Integer> list = new ArrayList<>();
for (int i = 0; i < 3; i++) {
if (maxScore == score[i]) list.add(i + 1);
}
return list;
}
}
다른 사람의 풀이
import java.util.*;
class Solution {
public static int[] solution(int[] answers) {
int[][] patterns = {
{1, 2, 3, 4, 5},
{2, 1, 2, 3, 2, 4, 2, 5},
{3, 3, 1, 1, 2, 2, 4, 4, 5, 5}
};
int[] hit = new int[3];
for(int i = 0; i < hit.length; i++) {
for(int j = 0; j < answers.length; j++) {
if(patterns[i][j % patterns[i].length] == answers[j]) hit[i]++;
}
}
int max = Math.max(hit[0], Math.max(hit[1], hit[2]));
List<Integer> list = new ArrayList<>();
for(int i = 0; i < hit.length; i++)
if(max == hit[i]) list.add(i + 1);
int[] answer = new int[list.size()];
int cnt = 0;
for(int num : list)
answer[cnt++] = num;
return answer;
}
}'알고리즘' 카테고리의 다른 글
| [프로그래머스] 소수 만들기(Java) * (0) | 2024.12.12 |
|---|---|
| [프로그래머스] 콜라 문제(Java) * (0) | 2024.12.06 |
| [프로그래머스] 푸드 파이트 대회(Java) * (0) | 2024.12.05 |
| [프로그래머스] 가장 가까운 같은 글자(Java) * (0) | 2024.12.04 |
| [프로그래머스] 두 개 뽑아서 더하기(Java) * (0) | 2024.12.03 |