https://programmers.co.kr/learn/courses/30/lessons/42840
첫 번째 풀이
수포자 3명이 일정하게 문제의 답을 찍으므로 person1, person2, person3 배열로 찍는 답의 순서를 적어줌
그리고 cnt 배열에 수포자 세명의 맞은 문제 갯수를 각각 저장해줌
그 중 가장 많이 맞은 문제 갯수를 찾아 max 변수에 저장해줌
그 후 가장 많이 맞은 문제 갯수와 수포자들의 맞은 문제 갯수를 비교하여 같은 경우 ArrayList에 사람 index 값을 넣어줌
코드
import java.util.*;
// 모의고사
// answers: 정답이 순서대로 들은 answers
class Solution {
public int[] solution(int[] answers) {
int[] person1 = {1, 2, 3, 4, 5};
int[] person2 = {2, 1, 2, 3, 2, 4, 2, 5};
int[] person3 = {3, 3, 1, 1, 2, 2, 4, 4, 5, 5};
int[] cnt = new int[3];
for(int i=0; i<answers.length; i++){
if(answers[i] == person1[i%5]) cnt[0]++;
if(answers[i] == person2[i%8]) cnt[1]++;
if(answers[i] == person3[i%10]) cnt[2]++;
}
// 가장 높은 점수
int max = Math.max(cnt[0], Math.max(cnt[1], cnt[2]));
List<Integer> list = new ArrayList<>();
// 가장 높은 점수를 받은 사람을 찾는 것
if(max == cnt[0])
list.add(1);
if(max == cnt[1])
list.add(2);
if(max == cnt[2])
list.add(3);
int[] answer = new int[list.size()];
for(int i=0; i<list.size(); i++){
answer[i] = list.get(i);
}
return answer;
}
}
두 번째 풀이
코드
import java.util.*;
// 모의고사
class Solution {
public int[] solution(int[] answers) {
// 찍는 방식
int[] person1 = {1, 2, 3, 4, 5};
int[] person2 = {2, 1, 2, 3, 2, 4, 2, 5};
int[] person3 = {3, 3, 1, 1, 2, 2, 4, 4, 5, 5};
int sum1 = 0;
int sum2 = 0;
int sum3 = 0;
// 맞힌 문제 수
for(int i=0; i<answers.length; i++){
if(person1[(i%5)] == answers[i])
sum1++;
if(person2[(i%8)] == answers[i])
sum2++;
if(person3[(i%10)] == answers[i])
sum3++;
}
int max = Math.max(sum1, Math.max(sum2, sum3));
List<Integer> list = new ArrayList<>();
if(max == sum1)
list.add(1);
if(max == sum2)
list.add(2);
if(max == sum3)
list.add(3);
if(list.size()>1)
Collections.sort(list);
int[] answer = new int[list.size()];
for(int i=0; i<list.size(); i++){
answer[i] = list.get(i);
}
return answer;
}
}
'Development Logs > Algorithms' 카테고리의 다른 글
[JAVA] 프로그래머스 : 카펫 (코딩테스트 고득점 kit > 완전탐색) (0) | 2020.07.20 |
---|---|
[JAVA] 프로그래머스 : H-Index (코딩테스트 고득점 kit > 정렬) (0) | 2020.07.20 |
[JAVA] 프로그래머스 : k번째수 (코딩테스트 고득점 kit > 정렬) (0) | 2020.07.19 |
[JAVA] 프로그래머스 : 콜라츠 추측 (0) | 2020.07.16 |
[JAVA] 프로그래머스 : 자릿수 더하기 (0) | 2020.07.16 |