[프로그래머스] 코딩테스트 연습 - 완전탐색 Level 1 모의고사

uoahy·2021년 9월 15일
0

Solution.java

import java.util.*;

class Solution {
    public int[] solution(int[] answers) {
        int[] answer = {};
        
        int[][] ans = {
            { 1, 2, 3, 4, 5 },
            { 2, 1, 2, 3, 2, 4, 2, 5 },
            { 3, 3, 1, 1, 2, 2, 4, 4, 5, 5 }
        };
        
        int[] count = new int[3];
        
        for (int i = 0; i < answers.length; i++) {
            for (int j = 0; j < 3; j++) {
                if (ans[j][i % ans[j].length] == answers[i]) {
                    count[j]++;
                }
            }
        }
        
        ArrayList<Integer> tmp = new ArrayList<>();
        
        int max = -1;
        for (int i = 0; i < 3; i++) {
            if (count[i] > max) {
                max = count[i];
                tmp.clear();
                tmp.add(i);
            }
            else if (count[i] == max) {
                tmp.add(i);
            }
        }
        
        answer = new int[tmp.size()];
        for (int i = 0; i < tmp.size(); i++) {
            answer[i] = tmp.get(i) + 1;
        }
        
        return answer;
    }
}

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges

0개의 댓글