개발 무지렁이

[문제풀이] Level1 모의고사 본문

코딩 테스트/문제풀이

[문제풀이] Level1 모의고사

Gaejirang-e 2023. 2. 23. 16:21

모의고사


🪅 keyPoint: List<Integer> -> Integer[]로 변환할 수 있느냐
🪅 keyPoint: Integer[] -> int[]로 변환할 수 있느냐

⚠️ List<Integer>를 Integer배열로 변환:
   Integer[] arrWrapper = list.toArray(new Integer[0]);
⚠️ Integer배열을 int배열로 변환:
   int[] arr = Arrays.stream(arrWrapper).mapToInt(Integer::intValue).toArray();
import java.util.*;
class Solution {
    public int[] solution(int[] answers) {
        int[] answer = {};
        int[] firstPattern = {1, 2, 3, 4, 5};
        int[] secondPattern = {2, 1, 2, 3, 2, 4, 2, 5};
        int[] thirdPattern = {3, 3, 1, 1, 2, 2, 4, 4, 5, 5};
        int[] answerCnts = {0, 0, 0, 0};
        List<Integer> idxList = new ArrayList<>();

        // 완전탐색, 하나하나 비교하여 count
        for(int i = 0; i < answers.length; i++) {
            int a = answers[i];
            if(a == firstPattern[i%5]) {
                answerCnts[1]++;
            } 
            if(a == secondPattern[i%8]) {
                answerCnts[2]++;
            } 
            if(a == thirdPattern[i%10]) {
                answerCnts[3]++;
            }    
        }

        // count 최댓값 찾기
        int maxIdx = 0;
        int maxCnt = 0;
        for(int i = 1; i < answerCnts.length; i++) {
            if(maxCnt < answerCnts[i]) {
                maxIdx = i;
                maxCnt = answerCnts[i];
            }
        }

        // 최댓값과 같은 인덱스를 idxList에 add
        for(int i = 1; i < answerCnts.length; i++) {
            if(maxCnt == answerCnts[i]) {
                idxList.add(i);
            }
        }

         // List<Integer> -> Integer[], Integer[] -> int[]
        Integer[] idxArray = idxList.toArray(new Integer[0]);
        answer = Arrays.stream(idxArray).mapToInt(Integer::intValue).toArray();

        return answer;
    }
}

'코딩 테스트 > 문제풀이' 카테고리의 다른 글

[문제풀이] Level2 타겟넘버  (0) 2023.02.24
[문제풀이] Level2 카펫  (0) 2023.02.23
[문제풀이] Level2 모음사전  (1) 2022.12.30
[문제풀이] Level2 피로도  (0) 2022.12.28
[문제풀이] Level2 소수찾기  (0) 2022.12.25
Comments