https://programmers.co.kr/learn/courses/30/lessons/42840?language=java
풀이
처음에는 score을 받는 변수를 다 따로 해서 계산하다가 배열로 고쳐넣었다.
가장 높은점수를 받은 사람을 오름차순으로 넣어야하는 부분이 어려웠다.
정말 if문으로 다 비교하는 코드를 작성하려다 너무길어져서 Math.max() 함수로 최고 점수를 구해내고,
첫번째 학생의 점수부터 비교해서 차례대로 리스트에 넣어주도록 했다.
import java.util.*;
class Solution {
public int[] solution(int[] answers) {
int[] s1 = {1,2,3,4,5};
int[] s2 = {2,1,2,3,2,4,2,5};
int[] s3 = {3,3,1,1,2,2,4,4,5,5};
int[] score = {0,0,0};
for(int i=0;i<answers.length;i++){
if(s1[i%5]==answers[i]) score[0]++;
if(s2[i%8]==answers[i]) score[1]++;
if(s3[i%10]==answers[i]) score[2]++;
}
int maxScore = Math.max(score[0], Math.max(score[1], score[2]));
ArrayList<Integer> list = new ArrayList<>();
for(int i=0; i<arr.length;i++){
if(scores[i]==maxScore){
list.add(i+1);
}
}
int[] answer = new int[list.size()];
for(int i=0;i<list.size();i++){
answer[i]=list.get(i);
}
return answer;
}
}
'Algorithm & Data Structure > 프로그래머스' 카테고리의 다른 글
[Java] 프로그래머스 : 크레인 인형뽑기 게임 (0) | 2022.02.14 |
---|---|
[Java] 프로그래머스 : 체육복 (0) | 2022.02.14 |
[Java] 프로그래머스 : k번째 수 (0) | 2022.02.11 |
[Java] 프로그래머스 : 시저 암호 (0) | 2022.02.08 |
[Java] 프로그래머스 : 콜라츠 추측 (0) | 2022.02.07 |