programmers.co.kr/learn/courses/30/lessons/42840
3명의 수포자의 찍는 패턴을 배열로 만들고 정답과 비교해서 점수를 구하고
점수 중 제일 큰 값을 구하고 그 값과 같은 점수를 받은 수포자의 인덱스를 배열에 넣어서 리턴함
import java.util.ArrayList;
// 프로그래머스 - 모의고사 문제
class Exam {
static ArrayList<Integer> list = new ArrayList<>();
static int[] arr1 = {1,2,3,4,5};
static int[] arr2 = {2,1,2,3,2,4,2,5};
static int[] arr3 = {3,3,1,1,2,2,4,4,5,5};
static int[] scores = new int[2];
public int[] solution(int[] answers) {
scores[0] = getScore(arr1, answers);
scores[1] = getScore(arr2, answers);
scores[2] = getScore(arr3, answers);
int max = maxScore(scores);
settingBestStudent(max);
return convertIntegerListToIntArr(list);
}
static int getScore(int[] check, int[] answers) {
int score = 0;
int length = check.length;
for(int i = 0; i < answers.length; i++) {
score += SameAnswerCount(answers[i], check[i % length]);
}
return score;
}
static int SameAnswerCount(int a, int b) {
if(a == b) {
return 1;
}
return 0;
}
static void settingBestStudent(int max) {
int index = 1;
for (int score : scores) {
addScore(score, max, index);
index++;
}
}
static void addScore(int max, int score, int index) {
if(score == max) {
list.add(index);
}
}
static int maxScore(int[] scores) {
int max = 0;
for(int score : scores) {
max = Math.max(max, score);
}
return max;
}
static int[] convertIntegerListToIntArr(ArrayList<Integer> list) {
int idx = 0;
int[] bests = new int[list.size()];
for (Integer integer : list) {
bests[idx] = integer;
idx++;
}
return bests;
}
}
'코딩 테스트 > 프로그래머스' 카테고리의 다른 글
프로그래머스 - 도둑질 문제 (자바) (0) | 2021.03.15 |
---|---|
프로그래머스 - 카펫 문제 (자바) (0) | 2021.03.15 |
프로그래머스 - 단속카메라 문제 (자바) (0) | 2021.03.15 |
프로그래머스 - 등굣길 문제 (자바) (0) | 2021.03.15 |
프로그래머스 - 정수삼각형 문제 (자바) (0) | 2021.03.15 |