https://school.programmers.co.kr/learn/courses/30/lessons/42840
import java.util.*;
class Solution {
public ArrayList<Integer> solution(int[] answers) {
ArrayList<Integer> answer = new ArrayList<>();
int[] list1 = {1, 2, 3, 4, 5};
int[] list2 = {2, 1, 2, 3, 2, 4, 2, 5};
int[] list3 = {3, 3, 1, 1, 2, 2, 4, 4, 5, 5};
HashMap<Integer, Integer> map = new HashMap<>();
int a = 0;
int b = 0;
int c = 0;
for (int i = 0; i < answers.length; i++) {
map.put(1, a);
if (list1[i % 5] == answers[i]) {
a += 1;
map.put(1, a);
}
}
for (int i = 0; i < answers.length; i++) {
map.put(2, b);
if (list2[i % 8] == answers[i]) {
b += 1;
map.put(2, b);
}
}
for (int i = 0; i < answers.length; i++) {
map.put(3, c);
if (list3[i % 10] == answers[i]) {
c += 1;
map.put(3, c);
}
}
if (map.get(1) == map.get(2) && map.get(1) == map.get(3)) {
answer.add(1);
answer.add(2);
answer.add(3);
} else {
List<Integer> list_map = new ArrayList<>(map.keySet());
list_map.sort((o1, o2) -> map.get(o2).compareTo(map.get(o1)));
answer.add(list_map.get(0));
}
return answer;
}
}
import java.util.*;
class Solution {
public ArrayList<Integer> solution(int[] answers) {
ArrayList<Integer> answer = new ArrayList<>();
int[] list1 = {1, 2, 3, 4, 5};
int[] list2 = {2, 1, 2, 3, 2, 4, 2, 5};
int[] list3 = {3, 3, 1, 1, 2, 2, 4, 4, 5, 5};
int[] count = {0, 0, 0}; // list1, 2, 3의 정답 수
for (int i = 0; i < answers.length; i++) {
if (list1[i % 5] == answers[i]) { // 값이 같을때마다 count += 1
count[0] += 1;
}
if (list2[i % 8] == answers[i]) {
count[1] += 1;
}
if (list3[i % 10] == answers[i]) {
count[2] += 1;
}
}
int[] arr = new int[count.length];
for (int i = 0; i < arr.length; i++) {
arr[i] = count[i];
}
Arrays.sort(arr); // 1, 2, 3의 count를 정렬하여 저장
for (int i = 0; i < arr.length; i++) { // 최댓값과 같은 수만 저장
if (count[i] == arr[2]) {
answer.add(i+1);
}
}
return answer;
}
}
한 주 정말 수고했어요~~
다음주도 화이팅!