import java.util.*;
class Solution {
public int[] solution(int[] answers) {
int[] answer = {};
int[] a = {1,2,3,4,5}; // 5개 반복
int[] b = {2,1,2,3,2,4,2,5}; // 8개 반복
int[] c = {3,3,1,1,2,2,4,4,5,5}; // 10개 반복
int[] cnt = new int[3];
for(int i=0; i<answers.length; i++){
if(a[i%5] == answers[i]) cnt[0]++;
if(b[i%8] == answers[i]) cnt[1]++;
if(c[i%10] == answers[i]) cnt[2]++;
}
int max = Math.max(Math.max(cnt[0], cnt[1]), cnt[2]);
ArrayList<Integer> list = new ArrayList<>();
for(int i=0; i<cnt.length; i++){
if(max == cnt[i]) {
list.add(i+1);
}
}
Collections.sort(list);
answer = new int[list.size()];
for(int i=0; i<list.size(); i++){
answer[i] = list.get(i);
}
return answer;
}
}
처음에는 저 반복되는 구간을 식으로 표현하려고 했는데
알고리즘 자체를 공부하기보다 반복구간 구현하는데 시간이 더 걸릴것같아
그냥 적어놓고 했다.
'알고리즘 > 완전탐색' 카테고리의 다른 글
[프로그래머스 연습문제 level_2 ] 카펫 (0) | 2024.01.18 |
---|---|
[프로그래머스 연습문제 level_2 ] 소수찾기 (0) | 2024.01.18 |
[프로그래머스 연습문제 level_1 ] 최소직사각형 (0) | 2024.01.15 |