728x90
내가 쓴 코드
function solution(answers) {
var answer = [];
var list = [
[1,2,3,4,5],
[2,1,2,3,2,4,2,5],
[3,3,1,1,2,2,4,4,5,5]
]
var point = [0,0,0]
for(var i=0; i<answers.length; i++){
if(answers[i] === list[0][i%5])
point[0]++;
if(answers[i] === list[1][i%8])
point[1]++;
if(answers[i] === list[2][i%10])
point[2]++;
}
var max =0;
for(var j=0; j<point.length; j++){
if(point[j] > max)
max = point[j];
}
for(var k=0; k<point.length; k++){
if(max===point[k])
answer.push(k+1);
}
return answer;
}
- 수포자가 찍는 방식을 리스트의 배열로 먼저 선언하고, 높은 점수를 받을 사람을 넣을 빈 배열도 선언해 둔다
- 각각의 수포자가 얻을 점수로 비교하기 위해 점수 값도 미리 0으로 선언한다
- 반복문을 돌려서 각각의 방식과 정답을 순서대로 비교해 본다.
- 각각의 수포자가 찍는 방식과 찍는 루틴의 개수가 다르기 때문에 개수에 맞게 확인하도록 한다 (%사용)
- 반복문을 돌려서 최대 첨수를 찾는다 (최대값 찾는 함수로 사용해도 될듯)
- 다시 반복문을 돌려서 최대값과 점수값을 비교해서 최종 값에 푸쉬 해준다
- +1을 하는 이유는 배열의 기본은 0부터 시작하기 때문이다
728x90
'알고리즘 문제' 카테고리의 다른 글
알고리즘 문제 js 36- 문자열 내림차순으로 배치하기 (0) | 2022.02.05 |
---|---|
알고리즘 문제 js 35 -문자열 내 마음대로 정렬하기 (0) | 2022.02.05 |
알고리즘 문제 js 33- 로또의 순위 (0) | 2022.02.01 |
알고리즘 문제 js 32- 두개 뽑아서 더하기 (0) | 2022.01.29 |
알고리즘 문제 js 31- 같은 숫자는 싫어 (0) | 2022.01.29 |