프로그래머스 모의고사를 풀어보자

JD·2021년 11월 20일
0

중요사항

  • 시험은 최대 10000 문제로 구성되어있다
  • 문제의 정답은 1,2,3,4,5 중 하나다

📢모의고사

수포자 3명이 찍는 방식으로 모의고사를 풀었을때 가장 높은 점수가 나온 사람은 누구인가 만약 높은 점수가 동일할시 오름차순정렬을한다

📢풀이

  • 세명의 찍는 방식을 배열로 선언함
  • 반복문을 사용하여 cnt,save배열에 맞춘갯수를 저장
  • cnt배열을 sort()사용하여 가장 높은 점수를 구함
  • 삼항연산자를 이용해서 answer배열의 크기를 구하고 생성
  • 반복문을 사용하여 save배열과 cnt[2]를 비교하여 answer에 값 추가하여 반환

📢코드

import java.util.*;

class Solution {
    public int[] solution(int[] answers) {
        int[] su1 = {1,2,3,4,5};
        int[] su2 = {2,1,2,3,2,4,2,5};
        int[] su3 = {3,3,1,1,2,2,4,4,5,5};
        int[] cnt = {0,0,0};
        int[] save = {0,0,0};
       
        
        for(int i=0; i<answers.length; i++){
            if(answers[i]==su1[i%5]){
                cnt[0]++;
                save[0]++;
            }
            if(answers[i]==su2[i%8]){
                cnt[1]++;
                save[1]++;
            }
            if(answers[i]==su3[i%10]){
                cnt[2]++;
                save[2]++;
            }
        }
      
       Arrays.sort(cnt);
        
        int arrlen = cnt[2]==cnt[1]?  cnt[2]==cnt[0]? 3 : 2  :1;
        int[] answer = new int[arrlen]; 
        arrlen=0;
        
        for(int y=0; y<cnt.length; y++){
           if(save[y]==cnt[2])answer[arrlen++]=y+1;
        }
        
        
        return answer;
    }
}

📢마치며

최대값을 어떻게 구하지 하다 sort()를 사용해서 최대값을 구했는데 다른 사람 풀이를 보니까 Math.max()를 이중으로 사용해서 최대값을 구했다 수포자가 많았다면 sort()가 편할수도있었지만 3명이라 좀 더 간단하게 표현할려면 Math.max()사용한게 좋지않을까 한다 풀었던 문제중에서 다른분풀이를 보고 Math.max()써서 풀어 더 간단하다고 한거같은데 이제 좀 기억해서 다음번에는 꼭 썻으면 좋겠다😂

📢출처

👍프로그래머스

0개의 댓글