모의고사

문제


문제 풀이

수험생 1,2,3 번이 문제를 찍는 패턴을 가지고 답변과 비교하여 몇 개나 맞추는지 확인하고 많이 맞춘 사람들을 뽑아내는 문제이다. 


나의 답안

public static int[] solution(int[] answers) {
    int[] answer = new int[4];
    int max =0 ;

    int[] case1 = {1, 2, 3, 4, 5};
    int[] case2 = {2, 1, 2, 3, 2, 4, 2, 5};
    int[] case3 = {3, 3, 1, 1, 2, 2, 4, 4, 5, 5};

    for (int i = 0; i < answers.length; i++) {
        if (case1[i % case1.length] == answers[i]) {
            answer[1]++;
        }
        if (case2[i % case2.length] == answers[i]) {
            answer[2]++;
        }
        if (case3[i % case3.length] == answers[i]) {
            answer[3]++;
        }
    }
    max = Math.max(answer[1] , Math.max(answer[2], answer[3]));

    List<Integer> list = new LinkedList<>();
    for (int i = 1; i < answer.length; i++) {
        if (max == answer[i]) list.add(i);
    }

    return list.stream().mapToInt(Integer::intValue).sorted().toArray();
}

'Programmers 문제풀이 > Lv.1' 카테고리의 다른 글

실패율  (0) 2023.03.21
소수 만들기  (1) 2023.03.21
포켓몬  (0) 2023.03.20
2016년  (0) 2023.03.19
두 개 뽑아서 더하기  (0) 2023.03.19