Dev/Programmers

[프로그래머스] 모의고사 (Java)

마이캣호두 2024. 12. 24. 17:18
반응형

 

https://school.programmers.co.kr/learn/courses/30/lessons/42840?language=java

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

 

Idea

학생들의 답변 패턴을 길이별로 정해주고, 각 학생이 문제를 풀 때마다 answer[i]++을 해준다. 세 학생 중 가장 높은 점수를 얻은 사람을 list에 넣어주고, int[]로 바꿔주면 끝!

 

 

Code

import java.util.*;

class Solution {
    public int[] solution(int[] answers) {
        int[] answer = new int[3];
        int[] arr1 = {1, 2, 3, 4, 5};
        int[] arr2 = {2, 1, 2, 3, 2, 4, 2, 5};
        int[] arr3 = {3, 3, 1, 1, 2, 2, 4, 4, 5, 5};
        
        for (int i = 0; i < answers.length; i++) {
            if (answers[i] == arr1[i % arr1.length]) {
                answer[0]++;
            }
            if (answers[i] == arr2[i % arr2.length]) {
                answer[1]++;
            }
            if (answers[i] == arr3[i % arr3.length]) {
                answer[2]++;
            }
        }
        
        int max = Math.max(answer[0], Math.max(answer[1], answer[2]));
        
        List<Integer> list = new ArrayList<>();
        
        for (int i = 0; i < answer.length; i++) {
            if (answer[i] == max) {
                list.add(i + 1);
            }
        }
        
        answer = list.stream().mapToInt(i -> i).toArray();
        
        return answer;
    }
}
반응형