https://programmers.co.kr/learn/courses/30/lessons/42840?language=java
코딩테스트 연습 - 모의고사
수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는
programmers.co.kr
풀이
처음에는 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 |