IT/알고리즘

프로그래머스 모의고사

어센트 2020. 5. 16. 15:50

https://programmers.co.kr/learn/courses/30/lessons/42840

 

코딩테스트 연습 - 모의고사

수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 ��

programmers.co.kr

 

기본적인 문제였는데 시간을 많이썼다. 자꾸 이차원 배열로 문제를 풀려다보니 그런것 같다. 간단한 문제는 최대한 쉽게 풀자!!

 

풀이

package lv1;

import java.util.ArrayList;

public class 모의고사 {

    public static void main(String[] args) {
        int []  a= {1,3,2,4,2};
        int [] ans = solution(a);
        for(int i:ans) System.out.println(i);
    }
    public static int[] solution(int[] answers) {
        int[] answer ={};
        int[] s1 = {1,2,3,4,5};
        int[] s2 = {2,1,2,3,2,4,2,5};
        int[] s3 = {3,3,1,1,2,2,4,4,5,5};
        int ans1 = 0 , ans2 = 0, ans3 = 0;

        for(int i=0;i<answers.length;i++){
            if(s1[i%s1.length] ==answers[i]) ans1++;
            if(s2[i%s2.length] ==answers[i]) ans2++;
            if(s3[i%s3.length] ==answers[i]) ans3++;
        }

        int max = Math.max(Math.max(ans1,ans2),ans3);
        ArrayList<Integer> list = new ArrayList<>();
        if(max== ans1) list.add(1);
        if(max== ans2) list.add(2);
        if(max== ans3) list.add(3);

        answer = new int [list.size()];
        for(int i=0;i<list.size();i++){
            answer[i] = list.get(i);
        }
        return answer;
    }
}