본문 바로가기

프로그래머스/JAVA

006. 모의고사[JAVA]

0. 사용 함수

  • 없음

 

1. 문제 내용

  • 설명

수포자는 각자의 방식대로 수학 모의고사의 정답을 찍는데

 

1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ...
2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ...
3번 수포자가 찍는 방식: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ...

 

정답이 주어졌을 때, 1번 2번 3번 수포자 중에 가장 많은 문제를 맞힌 사람이 누구인지 배열에 담는 문제

 

  • 제한 사항

   시험은 최대 10,000 문제로 구성되어있습니다. 
   문제의 정답은 1, 2, 3, 4, 5중 하나입니다.
   가장 높은 점수를 받은 사람이 여럿일 경우, return하는 값을 오름차순 정렬해주세요.

 

2. 문제 풀이

class Solution {
    public int[] solution(int[] answers) {
        int[] supoza1 = {1,2,3,4,5};
        int[] supoza2 = {2,1,2,3,2,4,2,5};
        int[] supoza3 = {3,3,1,1,2,2,4,4,5,5};
        int temp1 = 0;
        int temp2 = 0;
        int temp3 = 0;
            
        for(int i=0; i < answers.length; i++){
            System.out.println(supoza3[i%supoza3.length]);
            if( answers[i] == supoza1[i%supoza1.length]){
                temp1++;
            }
            if(answers[i] == supoza2[i%supoza2.length]){
                temp2++;
            }
            if(answers[i] == supoza3[i%supoza3.length]){
                temp3++;
            }
        }
        int[] answer = selectBig(temp1,temp2,temp3);
        return answer;
    }
    
    public int[] selectBig(int a,int b,int c){
        if(a > b){
            if(c > a){
                return new int[] {3};
            } else if (a > c){
                return new int[] {1};
            } else{
                return new int[] {1,3};
            }
        } else if (a < b){
            if(c > b){
                return new int[] {3};
            } else if (b > c){
                return new int[] {2};
            } else{
                return new int[] {2,3};
            }
        } else {
            if(c > a){
                return new int[] {3};
            } else if(a > c){
                return new int[] {1,2};
            } else{
                return new int[] {1,2,3};
            }
        }
    }
}

 

 

3. 채점 결과

  • 정확성 테스트
테스트 1 통과 (0.40ms, 77.4MB)
테스트 2 통과 (0.18ms, 72.7MB)
테스트 3 통과 (0.16ms, 72MB)
테스트 4 통과 (0.15ms, 77.3MB)
테스트 5 통과 (1.32ms, 71.4MB)
테스트 6 통과 (1.71ms, 76.8MB)
테스트 7 통과 (18.63ms, 83.8MB)
테스트 8 통과 (10.01ms, 74.7MB)
테스트 9 통과 (34.94ms, 84.7MB)
테스트 10 통과 (17.33ms, 77.7MB)
테스트 11 통과 (28.80ms, 90.4MB)
테스트 12 통과 (23.45ms, 81.5MB)
테스트 13 통과 (6.22ms, 76.9MB)
테스트 14 통과 (26.09ms, 91.3MB)

ㅎㅎ.. 풀다가 int배열에 담는 과정에 에러가 하도 나서

나중에 귀찮아져가지고 막코딩도 좀 했다..

그 덕분에 그래도 빨리 풀었다,,

 

그래서인지 정확도 테스트에서 시간이 꽤 오래 걸린다..

 

 

 

 

 

 

 

 

 

'프로그래머스 > JAVA' 카테고리의 다른 글

008. 폰켓몬[JAVA]  (0) 2022.05.22
007. 체육복[JAVA]  (0) 2022.05.21
004. 소수 만들기[JAVA]  (0) 2021.12.23
002. [카카오 인턴] 키패드 누르기[JAVA]  (0) 2021.12.18
001. 로또의 최고 순위와 최저 순위[JAVA]  (0) 2021.12.13