빙응의 공부 블로그

[Programmers]Lv.1 모의고사 본문

Argorithm

[Programmers]Lv.1 모의고사

빙응이 2024. 1. 2. 20:20


📝풀이

해당 수포자들의 패턴이 있으므로 패턴을 저장한 다음 로직을 구현하면 쉽게 풀 수 있다. 

그러나 마지막 결과를 리턴할 때는 스트림이나 혹은 따로 처리를 해줘야 한다. 

 

import java.util.ArrayList;
class Solution {
    public int[] solution(int[] answers) {
        int[][] role = {{1,2,3,4,5},{2,1,2,3,2,4,2,5},{3,3,1,1,2,2,4,4,5,5}};
        int[] check = new int[3];

        for (int i = 0; i < role.length; i++) {
            int count = 0;
            int pointer = 0;
            for (Integer answer : answers) {
                if (role[i][pointer] == answer) {
                    count++;
                }
                pointer = (pointer + 1) % role[i].length;
            }
            check[i] = count;
        }
        int maxCount = Math.max(check[0],Math.max(check[1],check[2]));
        ArrayList<Integer> resultList = new ArrayList<>();
        for (int i = 0; i < check.length; i++) {
            if (check[i] == maxCount) {
                resultList.add(i + 1);
            }
        }
        int[] answer = new int[resultList.size()];
        for (int i = 0; i < answer.length; i++) {
            answer[i] = resultList.get(i);
        }

        return answer;
    }
}