티스토리 뷰

728x90
반응형
문제 링크

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

 

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

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

programmers.co.kr

문제 풀이

주어진 배열을 1번 수포자, 2번 수포자, 3번 수포자 경우를 모두 돌리는 완전 탐색 문제입니다.

각 수포자가 찍는 방식을 배열로 만들고, 정답과 비교하며 수포자가 찍은 정답과 일치하면 맞춘 개수를 증가시킵니다.

제일 많이 맞춘사람들을 리턴해야 하므로 max값을 가진 점수를 가진 수포자 개수를 세어 그 크기의 정답 배열을 생성하고, max값을 가진 수포자들을 넣어줍니다.

 

소스 코드
class Solution {
    public int[] solution(int[] answers) {
        
        int [][] supo = {{1,2,3,4,5},{2,1,2,3,2,4,2,5},{3,3,1,1,2,2,4,4,5,5}};
        int[] supoSum ={0,0,0};
        
        for(int i=0; i<answers.length; i++)
            for(int number = 0; number<3; number++)
                if(answers[i] ==supo[number][i%supo[number].length]) supoSum[number]++; 
        
        int max = Math.max(supoSum[0], Math.max(supoSum[1],supoSum[2]));
        
        int cnt =0;
        for( int num : supoSum)                                     
        if(max == num) cnt++;
        int[] answer = new int[cnt];
        
        int index=0;
        for(int i=0;i < 3;i++){
            if(supoSum[i] != max) continue;
            answer[index++] = i+1;
        }

        
        return answer;
    }
}
728x90
반응형
250x250
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함