📝 문제

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

🎯 풀이

단순 구현 문제.

import java.util.*;
class Solution {
    public int[] solution(int[] answers) {
        // 패턴 3개 초기화.
        int[] pattern1 = new int[] { 1, 2, 3, 4, 5 };
        int[] pattern2 = new int[] { 2, 1, 2, 3, 2, 4, 2, 5 };
        int[] pattern3 = new int[] { 3, 3, 1, 1, 2, 2, 4, 4, 5, 5 };
        // 점수 변수 3개 초기화.
        int student1 = 0;
        int student2 = 0;
        int student3 = 0;
        // 정답 추출용 리스트 선언.
        List topGrade = new ArrayList<>();
        // 점수체크
        for (int i = 0; i < answers.length; i++) {
          if(answers[i] == pattern1[i%5]) student1 += 1;
          if(answers[i] == pattern2[i%8]) student2 += 1;
          if(answers[i] == pattern3[i%10]) student3 += 1;
        }
        // 가장 높은 점수 추출.
        int max = 0;
        if(student1 > max) max = student1;
        if(student2 > max) max = student2;
        if(student3 > max) max = student3;
        // 가장 높은 점수 받은 학생번호 리스트에 삽입.
        if(student1 == max) topGrade.add(1);
        if(student2 == max) topGrade.add(2);
        if(student3 == max) topGrade.add(3);
        // 정수형 배열로 변환.
        int[] answer = new int[topGrade.size()];
        for(int i = 0; i < topGrade.size(); i++){
          answer[i] = (int) topGrade.get(i);
        }

        return answer;
    }
}

댓글남기기