[프로그래머스] 모의고사
2020. 6. 17. 20:38ㆍ프로그래머스/LEVEL 1
import java.util.*;
class Solution {
public int[] solution(int[] answers) {
int[] answer = {};
List<Integer> answerList = new ArrayList<>();
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[] rank = new int[4];
int bestCorrect =0;
for(int i=0; i<answers.length; i++){
if(answers[i]==person1[i%5]){
rank[1]++;
}
if(answers[i]==person2[i%8]){
rank[2]++;
}
if(answers[i]==person3[i%10]){
rank[3]++;
}
}
for(int i=1; i<rank.length; i++){
bestCorrect = Math.max(rank[i],bestCorrect);
}
for(int i=1; i<rank.length; i++){
if(rank[i]==bestCorrect){
answerList.add(i);
}
}
answer = new int[answerList.size()];
for(int i=0; i<answerList.size(); i++){
answer[i] = answerList.get(i);
}
return answer;
}
}
1. 각 사람의 찍는 패턴배열을 만든다.
2. answers를 돌면서 각 사람이 몇개를 맞추었는지 rank에 기록한다.
3. rank중 가장 큰 값을 찾아 bestCorrect로 지정한다. (rank를 정렬시켜서 구한다면 person 번호를 지칭하는 인덱스가 흐트러지므로 Math.max를 이용해 변수에 담았다.)
4. 다시 rank를 돌면서 bestCorrect와 같은 값을 가진 person의 index를 answerList에 넣는다.
5. answer에 answerList값들을 옮긴다.
----------------------------------------------------------------------------------------------------------------------------
자바스크립트
function solution(answers) {
var answer = [];
let count=[0,0,0];
const first = [1,2,3,4,5];
const second = [2,1,2,3,2,4,2,5];
const third = [3,3,1,1,2,2,4,4,5,5];
for (var i=0; i<answers.length; i++){
if (answers[i] === first[i%first.length]){
count[0]++;
}
if (answers[i] === second[i%second.length]){
count[1]++;
}
if (answers[i] === third[i%third.length]){
count[2]++;
}
}
const target = Math.max(count[0],count[1],count[2]);
for (var i=0; i<count.length; i++){
if(count[i]===target){
answer.push(i+1);
}
}
return answer;
}
1. 정답 배열을 만들고 답을 비교하는 방식은 자바때와 같다.
2. Math.max를 통해 2개보다 많은 수를 한번에 비교할 수 있다. (자바는 두개만 비교 가능)
'프로그래머스 > LEVEL 1' 카테고리의 다른 글
[프로그래머스] K번째수 (0) | 2020.06.19 |
---|---|
[프로그래머스] 문자열 내 p와 y의개수 (0) | 2020.06.19 |
[프로그래머스] 완주하지 못한 선수 (0) | 2020.06.17 |
[프로그래머스] x만큼 간격이 있는 n개의 숫자 (0) | 2020.06.17 |
[프로그래머스] 문자열 다루기 기본 (0) | 2020.06.17 |