import java.util.ArrayList;
import java.util.List;
class Solution {
public int[] solution(int[] answers) {
int[] temp = new int[3];
List<Integer> ans = new ArrayList<>();
int[] supoja1 = {1,2,3,4,5};
int[] supoja2 = {2,1,2,3,2,4,2,5};
int[] supoja3 = {3,3,1,1,2,2,4,4,5,5};
for(int i=0; i<answers.length; i++){
if(answers[i] == supoja1[i%supoja1.length])
temp[0]++;
if(answers[i] == supoja2[i%supoja2.length])
temp[1]++;
if(answers[i] == supoja3[i%supoja3.length])
temp[2]++;
}
int max = Math.max(Math.max(temp[0],temp[1]), temp[2]);
if(max == temp[0])
ans.add(0);
if(max == temp[1])
ans.add(1);
if(max == temp[2])
ans.add(2);
int[] answer = new int[ans.size()];
for(int i=0; i<ans.size(); i++){
answer[i] = ans.get(i)+1;
}
return answer;
}
}
1. answers를 수포자1,2,3의 정답과 하나씩 비교해야하므로 완전탐색 문제이다.
2. temp[] 배열의 인덱스는 각각 수포자1,2,3의 점수가 된다.
3. 수포자1,2,3의 점수인 temp[]배열의 값 중 최댓값을 찾는다.
4. 최댓값과 temp[0],[1],[2] 값이 같으면 - 최고점을 가지는 수포자를 의미한다.
5. 최고점을 가지는 수포자를 ans에 넣어주고, answer[] 배열에 ans.get[i]값으로 채워준다.
'1d-1c > Programmers' 카테고리의 다른 글
Level2_기능개발 (C++) (JAVA) (0) | 2020.11.05 |
---|---|
Level1_체육복 (JAVA) (0) | 2020.11.02 |
Level1_예산 (JAVA) (0) | 2020.11.02 |
Level1_두 개 뽑아서 더하기 (JAVA) (0) | 2020.10.31 |
Level1_크레인 인형뽑기 게임 (JAVA) (0) | 2020.10.31 |