[프로그래머스][모의고사]-Lv.1

호준·2022년 11월 5일
0

Algorithm

목록 보기
93/111
post-thumbnail

🎄 문제

문제링크

🎄 제한사항

업로드중..

🎄 접근방법

  1. 수포자들의 찍는 방식을 mathGiveUp 2차배열을 만들어서 저장하였다.
  2. 수포자 3명의 방식을 돌면서 각각 해당하는 답들이 맞는 확인하여 맞은 개수를 저장하고, 그 중 많이 맞춘 개수(max)를 기억한다.
  3. max랑 맞춘 개수가 같은 수포자를 list에 담고 반환한다.

🎄 코드

import java.util.*;
class Solution {
    int[][] mathGiveUp = {{1, 2, 3, 4, 5}, {2, 1, 2, 3, 2, 4, 2, 5}, {3, 3, 1, 1, 2, 2, 4, 4, 5, 5}};
    public int[] solution(int[] answers) {
        int[] answer = {};
        int[] temp = new int[3];
        int max = 0;
        for(int i=0; i<3; i++){
            int count = 0;
            for(int j=0; j<answers.length; j++){
                if(mathGiveUp[i][j % mathGiveUp[i].length] == answers[j]){
                    count++;
                }
            }
            temp[i] = count;
            max = Math.max(max,count);
        }
        List<Integer> list = new ArrayList<>();
        for(int i=0; i<3; i++){
            if(max == temp[i]){
                list.add((i+1));
            }
        }
        return list.stream().mapToInt(i->i).toArray();
    }
}
profile
도전하자

0개의 댓글