모의고사 Lv. 1

박영준·2023년 6월 19일
0

코딩테스트

목록 보기
261/300
class Solution {
    public int[] solution(int[] answers) {
        int[] answer = {};
        return answer;
    }
}

해결법

방법 1

import java.util.*;

class Solution {
    public int[] solution(int[] answers) {
        int[] first = {1,2,3,4,5};              // 수포자 1 : 5개씩 반복
        int[] second = {2,1,2,3,2,4,2,5};       // 수포자 2 : 8개씩 반복
        int[] third = {3,3,1,1,2,2,4,4,5,5};    // 수포자 3 : 10개씩 반복
        int[] score = {0,0,0};      // 각 수포자들의 점수
        
        // 수포자들의 점수 계산
        for (int i = 0; i < answers.length; i++) {
            if (answers[i] == first[i % 5]) {
                score[0]++;
            }
            
            if (answers[i] == second[i % 8]) {
                score[1]++;
            }
            
            if (answers[i] == third[i % 10]) {
                score[2]++;
            }
        }
        
        // 최대 점수 구하기
        int max = Math.max(score[0], Math.max(score[1], score[2]));
        
        // 최대 점수를 가진 수포자 리스트 생성
        List<Integer> list = new ArrayList<>();
        
        for (int i = 0; i < score.length; i++) {
            if (max == score[i]) {
                list.add(i + 1);        // 0 인덱스부터 시작했으므로 +1 해주기
            }    
        }
            
        int[] answer = new int[list.size()];
        
        for (int i = 0; i < answer.length; i++) {
            answer[i] = list.get(i);
        }

        return answer;
    }
}

모의고사 Lv. 1

profile
개발자로 거듭나기!

0개의 댓글