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

홈런볼·2023년 7월 17일

프로그래머스

목록 보기
15/36

문제링크

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

문제접근

  1. 1,2,3의 답을 담은 배열을 선언함
  2. 입력값으로 들어온 answer의 원소를 비교하면서 맞은 갯수를 카운트 함
  3. 값을 비교해서 많이 맞은 사람을 찾고, 동점인 경우 많이 맞은 사람에 추가함

코드

class Solution {
    public int[] solution(int[] answers) {
        int[] answer;
        int[] ans1={1,2,3,4,5};
        int[] ans2={2,1,2,3,2,4,2,5};
        int[] ans3={3,3,1,1,2,2,4,4,5,5};
        int a=0,b=0,c=0;
        
        for(int i=0;i<answers.length;i++){
            if(answers[i]==ans1[i%5]) a++;
            if(answers[i]==ans2[i%8]) b++;
            if(answers[i]==ans3[i%10]) c++;
        }
        if(a>b && a>c){
            answer=new int[1];
            answer[0]=1;
        }else if(b>a && b>c){
            answer=new int[1];
            answer[0]=2;
        }else if(c>a && c>b){
            answer=new int[1];
            answer[0]=3;
        }else if(a==b && b>c){
            answer=new int[2];
            answer[0]=1;
            answer[1]=2;
                
        }else if(a==c && c>b){
            answer=new int[2];
            answer[0]=1;
            answer[1]=3;
        }else if(b==c && b>a){
            answer=new int[2];
            answer[0]=2;
            answer[1]=3;
        }else{
            answer=new int[3];
            answer[0]=1;answer[1]=2;answer[2]=3;
        }
        return answer;
    }
}

정확성 테스트

0개의 댓글