본문 바로가기

코딩 문제/프로그래머스

프로그래머스 - 코딩테스트 - Level1 - 모의고사

728x90

 

풀이

 

class Solution {

      public int[] solution(int[] answers) {

            int[] answer = {};

            int[] countanswer = new int[3]; // 각 수포자가 맞힌 정답의 수

            int[] personAnswer = new int[answers.length]; // 각 수포자의 정답 표

            int max = 0;

            int same = 0;

            int index = 0;

 

            for(int i=0; i<3; i++){

                  int ACount = 0;

                  if(i==0){

                        for(int j=0; j<answers.length; j++){

                              if(j % 5 == 0){

                                    personAnswer[j] = 1;

                              }else if(j % 5 == 1){

                                    personAnswer[j] = 2;

                              }else if(j % 5 == 2){

                                    personAnswer[j] = 3;

                              }else if(j % 5 == 3){

                                    personAnswer[j] = 4;

                              }else {

                                    personAnswer[j] = 5;

                              }

                        }

                        for(int j=0; j<answers.length; j++){

                              if(answers[j] == personAnswer[j]){

                                    ACount++;

                              }

                        }

                  }else if(i==1){

                        int count = 1;

                        for(int j=0; j<answers.length; j++){

                              if(j%2 == 0){

                                    personAnswer[j] = 2;

                              }else{

                                    personAnswer[j] = count;

                                    count++;

                                    if(count == 2){

                                          count++;

                                    }

                                    if(count == 6){

                                          count = 1;

                                    }

                              }

                        }

                        for(int j=0; j<answers.length; j++){

                              if(answers[j] == personAnswer[j]){

                                    ACount++;

                              }

                        }

                  }else{

                        for(int j=0; j<answers.length; j++){

                              if(j % 10 == 0 || j % 10 == 1){

                                    personAnswer[j] = 3;

                              }else if(j % 10 == 2 || j % 10 == 3){

                                    personAnswer[j] = 1;

                              }else if(j % 10 == 4 || j % 10 == 5){

                                    personAnswer[j] = 2;

                              }else if(j % 10 == 6 || j % 10 == 7){

                                    personAnswer[j] = 4;

                              }else {

                                    personAnswer[j] = 5;

                              }

                        }

                        for(int j=0; j<answers.length; j++){

                              if(answers[j] == personAnswer[j]){

                                    ACount++;

                              }

                        }

                  }

                  if(max < ACount){

                        max = ACount;

                        same = 1;

                  }else if(max == ACount){

                        same++;

                  }

                  countanswer[i] = ACount;

            }

            answer = new int[same];

            for(int i=0; i<3; i++){

                  if(countanswer[i] == max){

                        answer[index] = i+1;

                        index++;

                  }

            }

 

            return answer;

      }

}

 

결과