프로그래머스 - [Level 1] 모의고사(JAVASCRIPT)
카테고리 : 완전탐색
간단한 완전탐색문제이다.
3가지 배열을 만들고,
일치하는 경우를 각각 계산해주고,
max값과 같으면 정답 배열에 넣어준다.
소스코드
function solution(answers) {
let answer = [];
let first=[1,2,3,4,5]; //5
let second=[2, 1, 2, 3, 2, 4, 2, 5]; // 8
let third=[ 3, 3, 1, 1, 2, 2, 4, 4, 5, 5]; // 10
let one=0,two=0,three=0;
let maxi=0;
for(let i=0;i<answers.length;i++){
if(answers[i]===first[i%5]) one++;
if(answers[i]===second[i%8]) two++;
if(answers[i]===third[i%10]) three++;
}
maxi=Math.max(one,Math.max(two,three));
if(maxi===one) answer.push(1);
if(maxi===two) answer.push(2);
if(maxi===three) answer.push(3);
return answer;
}
다른 사람의 풀이
fiter을 활용해 간단하게 풀이했다. 생각보다 코딩테스트에서 map, reduce, filter가 많이 사용되는 것 같다.
function solution(answers) {
var answer = [];
var a1 = [1, 2, 3, 4, 5];
var a2 = [2, 1, 2, 3, 2, 4, 2, 5]
var a3 = [ 3, 3, 1, 1, 2, 2, 4, 4, 5, 5];
var a1c = answers.filter((a,i)=> a === a1[i%a1.length]).length;
var a2c = answers.filter((a,i)=> a === a2[i%a2.length]).length;
var a3c = answers.filter((a,i)=> a === a3[i%a3.length]).length;
var max = Math.max(a1c,a2c,a3c);
if (a1c === max) {answer.push(1)};
if (a2c === max) {answer.push(2)};
if (a3c === max) {answer.push(3)};
return answer;
}
Leave a comment