function solution(answers) {
var student = [[1,2,3,4,5],[2,1,2,3,2,4,2,5],[3,3,1,1,2,2,4,4,5,5]];
var answer = [];
for (var i in student){
var cnt = 0;
for(var j in answers){
if(student[i][j%student[i].length] === answers[j]){
cnt++
}
}
answer.push(cnt);
}
var maxnum = Math.max.apply(null,answer);
var ans = [];
for (var h=0; h<answer.length;h++){
if(answer[h]==maxnum){
ans.push(h+1);
continue;
}
ans.sort(function(a,b){return a-b;})
}
return ans;
}
으으으
먼저 student 배열을 선언하여, 학생1,2,3의 찍는 패턴을 담아주었습니다.
그 뒤, for문을 사용하여 학생1,2,3 각각을 answer의 배열과 비교해주었습니다.
각각 비교해서 같으면 cnt변수에 1을 추가하는 방식으로, 정답 개수를 셉니다.
마지막에는 answer이라는 배열을 선언하여, 각 학생의 정답 개수(cnt변수)를 push해줍니다.
그리고, answer 배열의 max값 즉, 가장 높은점수가 무엇인지를 구합니다.
자바스크립트에서 Math.max(1,2,3);을 하게 되면 3이 나옵니다.
그런데 배열 내에서의 max값을 구하고 싶으면, Math.max.apply(null, 알고싶은배열); 을 해주어야 합니다.
이 방법으로 가장 최고득점이 무엇인지 구했습니다.
이후 for문에서 최고득점과 같은 값을 가지고 있으면 그 인덱스를 ans 배열에 push해주었습니다.
정답 조건에 맞게 sort시켜주고 그 배열을 return 시킵니다.
이러한 방식의 알고리즘을 완전탐색이라고 하는 것 같습니다!!
프로그래머스 Level1 - 서울에서 김서방 찾기 (JavaScript) (0) | 2020.05.10 |
---|---|
프로그래머스 Level1 - 평균 구하기 (JavaScript) (0) | 2020.05.09 |
프로그래머스 Level1 - 2016년 (JavaScript) (0) | 2020.05.09 |
프로그래머스 Level1 - K번째수 (JavaScript) / sort 함수 작동법 (0) | 2020.05.09 |
프로그래머스 Level1 - 직사각형 별찍기 (JavaScript) (0) | 2020.05.09 |