[코드테스트]로또 최고순위, 최저순위

이강민·2021년 10월 22일
0
post-thumbnail

로또 최고순위와 최저순위

본인이 한 정답 풀이다.
말그대로 깔끔하지 못하다... APIs를 사용하고 싶었지만 숙달이 부족하다. 그래도 통과에 의의를 두자..

function solution(lottos, win_nums){
	let result = [];

for(let i = 0; i < win_nums.length; i++){
	let correct = lottos.indexOf(win_nums[i]);
	if(correct > -1){
		result += i
	}
}
console.log(result.length)
let zeroCnt = 0;
for(let i = 0; i<lottos.length; i ++){
	if(lottos[i] === 0){
		zeroCnt ++;
	}
}
console.log(zeroCnt)

let highScore = result.length + zeroCnt;
let lowScore = result.length;
const answer = [];
switch(highScore){
		case 6 : answer[0] = 1 
		break;
		case 5: answer[0] = 2
		break;
		case 4: answer[0] = 3
		break;
		case 3: answer[0] = 4
		break;
		case 2: answer[0] = 5
		break;
		default : answer[0] = 6
		break;
}

switch(lowScore){
		case 6 : answer[1] = 1 
		break;
		case 5: answer[1] = 2
		break;
		case 4: answer[1] = 3
		break;
		case 3: answer[1] = 4
		break;
		case 2: answer[1] = 5
		break;
		default : answer[1] = 6
		break;
}

console.log(answer)
}
let lottos = [44,1,0,0,31,21]
let win_nums = [31,10,45,1,6,19]
solution(lottos,win_nums)

다음 아래의 코드는 최고의 풀이다.

function solution(lottos, win_nums) {
    const rank = [6, 6, 5, 4, 3, 2, 1];

    let minCount = lottos.filter(v => win_nums.includes(v)).length;
    let zeroCount = lottos.filter(v => !v).length;

    const maxCount = minCount + zeroCount;

    return [rank[maxCount], rank[minCount]];
}
  
profile
AllTimeDevelop

0개의 댓글

관련 채용 정보