Notice
Recent Posts
Recent Comments
Link
«   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
Archives
Today
Total
관리 메뉴

발전하는 개발자가 되자

프로그래머스 알고리즘: 모의고사 (java) 본문

개발공부/알고리즘

프로그래머스 알고리즘: 모의고사 (java)

백경훈 2019. 2. 18. 23:33

프로그래머스 알고리즘 (java)

모의고사

프로그래머스 (모의고사)

코드 리뷰

조건

  1. 각각 찍는 패턴이 있다.
  2. 결과는 가장 많이 맞은 수포자들의 번호를 리턴한다. 저는 그냥 반복문을 사용해서 다 찾아보면 될거 같았습니다.
public int[] solution(int[] answers) {
        int[] player1 = {1, 2, 3, 4, 5};//5
        int[] player2 = {2, 1, 2, 3, 2, 4, 2, 5};// 8
        int[] player3 = {3, 3, 1, 1, 2, 2, 4, 4, 5, 5};// 10
        int[] answer = new int[]{0,0,0};
        int maxNum = 0;
        List<Integer> countNum = new ArrayList<>();

        for (int i = 0; i < answers.length; i++) {
            if (answers[i] == player1[i % 5]) {
                answer[0]++;
            }

            if (answers[i] == player2[i % 8]) {
                answer[1]++;
            }

            if (answers[i] == player3[i % 10]) {
                answer[2]++;
            }
        }

        for (int i : answer) {
            if (i > maxNum) {
                maxNum = i;
            }
        }

        for (int i = 0; i < 3; i++) {
            if (answer[i] == maxNum) {
                countNum.add(i+1);
            }
        }
        return countNum.stream().mapToInt(i->i).toArray();
    }

고민한 점

list를 int[] 로 바꾸는게 고민됬습니다. 그러다 그냥 스트림을 사용해서 해결 했습니다.

다른사람 코드 참고할 점

확인해보니 좋아요 가장 높은거랑 거의 비슷하게 풀어 만족했습니다.

Comments