코딩 관련/코딩문제풀기

[프로그래머스] Lv1. 모의고사

메리짱123 2024. 10. 23. 16:49
반응형

또 써본 mapToInt();

학생들 점수산출은 어렵지 않았는데 그 다음에

제일 큰 점수 구하기 -> 제일 큰 점수 가진 학생 구하기 -> 배열 만들기

이게 너무 싫음..

import java.util.*;
import java.util.stream.*;

class Solution {
    public int[] solution(int[] answers) {
        int[] student1 = {1, 2, 3, 4, 5}; //len 5
        int[] student2 = {2, 1, 2, 3, 2, 4, 2, 5}; //len8
        int[] student3 = {3, 3, 1, 1, 2, 2, 4, 4, 5, 5}; //len10
        
        int[] scores = new int[3];
        for(int i=0;i<answers.length;i++){
            int answer = answers[i];
            
            //학생1정답
            if(student1[i%student1.length] == answer) scores[0] += 1;
            //학생2정답
            if(student2[i%student2.length] == answer) scores[1] += 1;
            //학생3정답
            if(student3[i%student3.length] == answer) scores[2] += 1;
        }
        
        int max = Arrays.stream(scores).max().orElse(0);
        
        List<Integer> students = new ArrayList<>();
        for(int i=0;i<scores.length;i++){
            if(scores[i] == max){
                students.add(i+1);
            }
        }
        
        return students.stream()
            .mapToInt(Integer::intValue)
            .toArray();
    }
}
반응형