문제 :

풀이 :

import java.util.*;

class Solution {
    public int[] solution(int[] answers) {
        int[] answer = {};
        
        // 수포자 1,2,3이 정답을 찍는 방법
        int[] p1 = {1,2,3,4,5};
        int[] p2 = {2,1,2,3,2,4,2,5};
        int[] p3 = {3,3,1,1,2,2,4,4,5,5};
        
        // 수포자 1,2,3의 점수
        int a1 = 0;
        int a2 = 0;
        int a3 = 0;
        
        for(int i=0; i<answers.length; i++) {
            // i번째 정답이 수포자의 정답과 일치할 경우 점수 증가
            if (answers[i] == p1[i % p1.length]) a1++;
            if (answers[i] == p2[i % p2.length]) a2++;
            if (answers[i] == p3[i % p3.length]) a3++;
        }
        
        // 최고점 확인 - p1과 p2의 점수를 비교해서 점수가 더 높을 
        int maxA = Math.max(a1, Math.max(a2, a3));
        // System.out.println(a1);
        
        // 정답수 순위를 담는 배열
        ArrayList<Integer> rank = new ArrayList<Integer>();
        
        // 수포자의 점수와 최고점이 같을 경우 순위 배열에 추가
        if (maxA == a1) rank.add(1);
        if (maxA == a2) rank.add(2);
        if (maxA == a3) rank.add(3);
        
        answer = new int[rank.size()];
        for (int i=0; i<rank.size(); i++) {
            answer[i] = rank.get(i);
        }
        
        // System.out.println(Arrays.toString(answer));
        return answer;
    }
}
profile
항해중인 우당탕탕 코린이

0개의 댓글