알고리즘 공부/문제 풀이
[프로그래머스] 완전 탐색 - 모의고사
valid_ming
2020. 8. 14. 20:21
static int[] solution(int[] answers) {
int[] answer = {};
int[] A= {1,2,3,4,5};
int[] B= {2,1,2,3,2,4,2,5};
int[] C= {3,3,1,1,2,2,4,4,5,5};
int a=0,b=0,c=0; // 배열 index
int aa=0,bb=0,cc=0; // 정답 개수
for(int i=0;i<answers.length;i++) {
int val=answers[i];
//정답 확인
if(A[a]==val) aa++;
if(B[b]==val) bb++;
if(C[c]==val) cc++;
//인덱스 증가
a = (a+1)%5;
b = (b+1)%8;
c = (c+1)%10;
}
int max = Math.max(Math.max(aa, bb),cc); // max값 구하기
ArrayList<Integer> list = new ArrayList<Integer>();
if(max==aa) list.add(1); //max값이랑 같으면 넣는다.
if(max==bb) list.add(2);
if(max==cc) list.add(3);
answer = new int[list.size()];
for(int i =0; i<answer.length; i++) {
answer[i] = list.get(i);
}
return answer;
}
문제 구현보다 오히려 출력을 더 고민한 문제