코딩테스트/프로그래머스

[Java] 프로그래머스 - 모의고사 (1단계)

배똥회장 2022. 4. 15. 14:04
728x90
코딩 테스트 풀이 체크리스트
2시간 내에 풀었는가? O
본인의 실력으로 풀었는가? O

 

 

코딩테스트 연습 - 모의고사

수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는

programmers.co.kr

 

 

 

 

import java.util.*;
class Solution {
    public int[] solution(int[] answers) {
        int[] case1 = {1, 2, 3, 4, 5};
        int[] case2 = {2, 1, 2, 3, 2, 4, 2, 5};
        int[] case3 = {3, 3, 1, 1, 2, 2, 4, 4, 5, 5};
        int[] position = new int[3];
        int[] pass = new int[3];
        
        int max = 0;
        for (int i = 0; i < answers.length; i++) {
            pass[0] += (case1[position[0]] == answers[i]) ? 1 : 0;
            pass[1] += (case2[position[1]] == answers[i]) ? 1 : 0;
            pass[2] += (case3[position[2]] == answers[i]) ? 1 : 0;
            
            
            position[0] = position[0] + 1 == case1.length ? 0 : position[0] + 1; 
            position[1] = position[1] + 1 == case2.length ? 0 : position[1] + 1; 
            position[2] = position[2] + 1 == case3.length ? 0 : position[2] + 1; 
            
        }
        max = Math.max(pass[0], Math.max(pass[1], pass[2]));
        
        ArrayList<Integer> arr = new ArrayList<>();
        
        for (int i = 0; i < 3; i++) {
            if (pass[i] == max) arr.add(i+1);
        }
        
        return arr.stream().mapToInt(Integer::intValue).toArray();
    }
}

 

테스트 1 통과 (2.78ms, 80.6MB)
테스트 2 통과 (2.70ms, 74.3MB)
테스트 3 통과 (2.58ms, 75MB)
테스트 4 통과 (2.82ms, 74.2MB)
테스트 5 통과 (2.48ms, 77.1MB)
테스트 6 통과 (3.16ms, 80.1MB)
테스트 7 통과 (2.84ms, 72.7MB)
테스트 8 통과 (3.05ms, 70.5MB)
테스트 9 통과 (4.84ms, 82.2MB)
테스트 10 통과 (2.54ms, 79.4MB)
테스트 11 통과 (4.80ms, 72.4MB)
테스트 12 통과 (3.02ms, 76.2MB)
테스트 13 통과 (8.55ms, 73MB)
테스트 14 통과 (3.33ms, 83.1MB)

 

 

 

 

 

 

728x90