문제
https://school.programmers.co.kr/learn/courses/30/lessons/42840
나의 풀이
import java.util.ArrayList;
class Solution {
public int[] solution(int[] answers) {
int[] m1 = { 1, 2, 3, 4, 5 };
int[] m2 = { 2, 1, 2, 3, 2, 4, 2, 5 };
int[] m3 = { 3, 3, 1, 1, 2, 2, 4, 4, 5, 5 };
int[] answer_count = { 0, 0, 0 };
for (int i = 0; i < answers.length; i++) {
if (answers[i] == m1[i % m1.length]) {
answer_count[0]++;
}
if (answers[i] == m2[i % m2.length]) {
answer_count[1]++;
}
if (answers[i] == m3[i % m3.length]) {
answer_count[2]++;
}
}
int max = Math.max(answer_count[0], Math.max(answer_count[1], answer_count[2]));
ArrayList<Integer> arrayList = new ArrayList<>();
for (int i = 0; i < answer_count.length; i++) {
if (max == answer_count[i]) {
arrayList.add(i + 1);
}
}
int[] answer = new int[arrayList.size()];
for (int i = 0; i < arrayList.size(); i++) {
answer[i] = arrayList.get(i);
}
return answer;
}
}
문제 정답의 처음부터 끝까지 모든 경우를 다 확인하는 완전 탐색 알고리즘의 문제이다.
1. 각 멤버의 정답 수를 카운트한다.
2. 정답 수의 최댓값을 찾는다.
3. 최대의 정답자를 찾는다.
'알고리즘 & 문제 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 둘만의 암호(java) (0) | 2023.02.10 |
---|---|
[프로그래머스] 폰켓몬(java) (0) | 2023.02.09 |
[프로그래머스] 부족한 금액 계산하기(java) (0) | 2023.02.08 |
[프로그래머스] 없는 숫자 더하기(java) (0) | 2023.02.08 |
[프로그래머스] 최소 직사각형(java) (0) | 2023.02.08 |