📝 문제
https://programmers.co.kr/learn/courses/30/lessons/42840?language=java
🎯 풀이
단순 구현 문제.
import java.util.*;
class Solution {
public int[] solution(int[] answers) {
// 패턴 3개 초기화.
int[] pattern1 = new int[] { 1, 2, 3, 4, 5 };
int[] pattern2 = new int[] { 2, 1, 2, 3, 2, 4, 2, 5 };
int[] pattern3 = new int[] { 3, 3, 1, 1, 2, 2, 4, 4, 5, 5 };
// 점수 변수 3개 초기화.
int student1 = 0;
int student2 = 0;
int student3 = 0;
// 정답 추출용 리스트 선언.
List topGrade = new ArrayList<>();
// 점수체크
for (int i = 0; i < answers.length; i++) {
if(answers[i] == pattern1[i%5]) student1 += 1;
if(answers[i] == pattern2[i%8]) student2 += 1;
if(answers[i] == pattern3[i%10]) student3 += 1;
}
// 가장 높은 점수 추출.
int max = 0;
if(student1 > max) max = student1;
if(student2 > max) max = student2;
if(student3 > max) max = student3;
// 가장 높은 점수 받은 학생번호 리스트에 삽입.
if(student1 == max) topGrade.add(1);
if(student2 == max) topGrade.add(2);
if(student3 == max) topGrade.add(3);
// 정수형 배열로 변환.
int[] answer = new int[topGrade.size()];
for(int i = 0; i < topGrade.size(); i++){
answer[i] = (int) topGrade.get(i);
}
return answer;
}
}
댓글남기기