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

Joo Yeong Park·2020년 10월 20일
0

algorithm

목록 보기
3/7

모의고사문제는 일정한 패턴을 체크 + 완전탐색을 이용해 문제를 풀었다.

import java.util.*;

class Solution {
    public int[] solution(int[] answers) {    	
        int[] st1 = {1, 2, 3, 4, 5};			// 1번학생
        int[] st2 = {2, 1, 2, 3, 2, 4, 2, 5};		// 2번학생
        int[] st3 = {3, 3, 1, 1, 2, 2, 4, 4, 5, 5};	// 3번학생
        
        int[] cnt = new int[3];
        
        //정답 체크
        for(int i = 0 ; i<answers.length; i++){
            if(answers[i] == st1[i%5])
                cnt[0]++;
            if(answers[i] == st2[i%8])
                cnt[1]++;
            if(answers[i] == st3[i%10])
                cnt[2]++;
        }
        
        //find max
        int max = -1;
        for(int i = 0; i<cnt.length; i++){
            if(cnt[i]>max)
                max = cnt[i];
        }
        
        //answer
        List<Integer> list = new ArrayList<>();
        for(int i = 0; i<cnt.length; i++){
            if(cnt[i] == max)
                list.add(i+1);
        }
        
        int[] answer = new int[list.size()];
        for(int i = 0; i<answer.length; i++){
            answer[i] = list.get(i);
        }
        
        return answer;
    }
}

정답을 맞춘 수max값을 찾고 이 값이 같은 학생들로 새 배열을 return하는 것이 문제.

max값이 같을 때 새 배열에 추가하기위해 List의 .add()를 썼다.

profile
웹 개발자를 꿈꾸는 삐약

0개의 댓글