ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Level1) 모의고사
    PS/programmers 2020. 9. 8. 12:43
    import java.util.ArrayList;
    import java.util.Arrays;
    
    class Solution {
        public static int[] solution(int[] answers) {
            int[] student1 = {1, 2, 3, 4, 5};
            int[] student2 = {2, 1, 2, 3, 2, 4, 2, 5};
            int[] student3 = {3, 3, 1, 1, 2, 2, 4, 4, 5, 5};
    
            int[] cnt = new int[3];
    
            for (int i = 0; i < answers.length; i++) {
                if (answers[i] == student1[i%5]) {
                    cnt[0]++;
                }
                if (answers[i] == student2[i%8]) {
                    cnt[1]++;
                }
                if (answers[i] == student3[i%10]) {
                    cnt[2]++;
                }
            }
    
            // 최고점 찾기
            int score = cnt[0];
            for (int i = 0; i < cnt.length; i++) {
                if (score < cnt[i]) {
                    score = cnt[i];
                }
            }
    
            // 똑같이 맞춘사람이 있다면 list 에 추가
            ArrayList<Integer> list = new ArrayList<Integer>();
            for (int i = 0; i < cnt.length; i++) {
                if (cnt[i] == score) {
                    list.add(i);
                }
            }
    
            int[] answer = new int[list.size()];
            for (int i = 0; i < list.size(); i++) {
                answer[i] = list.get(i) + 1;
            }
    
            return answer;
        }
    }
    

    - 규칙을 찾아서 배열3개를 따로 만들 생각을하고 풀이를 시작했는데 실패

    - 다른 코드 보니까 규칙에 % 써서 풀이했는데 이렇게 하니까 엄청 간단한데 생각이 안났음

    - 풀다가 이건 좀 아닌거 같다 싶으면 바로 다른 풀이를 생각해야할듯 

     

     


    programmers.co.kr/learn/challenges

    'PS > programmers' 카테고리의 다른 글

    Level1) 같은 숫자는 싫어  (0) 2020.09.08
    Level1) 가운데 글자 가져오기  (0) 2020.09.08
    Level1) 2016년  (0) 2020.09.08
    Level1) K번째 수  (0) 2020.09.08
    Level1) 체육복  (0) 2020.09.08
킹수빈닷컴