728x90
내가 쓴 코드
function solution(lottos, win_nums) {
let win =[0,6,5,4,3,2,1];
let count = 0;
let zero =0;
for(let i =0; i<lottos.length; i++){
if(lottos[i]==0){ zero = zero +1 }
for(let j=0; j<lottos.length; j++){
if(lottos[i]==win_nums[j]){
count=count +1
}
}
}
if(count==0 && zero ==0) {return [6,6]}
if(zero == 0 && count ==6){return [1,1]}
if(zero == 6){return [1,6]}
let max = win[count]
let min = win[count+zero]
return ([min,max])
}
문제를 일단 종이에 적어봤는데 수학문제 풀듯 접근하니 나온 답
진짜 좋은 코드는 아니지만 내손으로 풀어냈다는 것에 의의를두기로 했다
이중 반복문을 돌리면서
1) 로또 번호와 당첨번호가 같을때 마다 count에 +1을 해주기로함
2)로또 번호에 알아볼수 없는 번호인 0이 몇개가 있는지 세주기로 함 (zero에 +1)
3)win이라는 배열을 만든 이유는 갯수가 늘어날수록 실제 등수의 수는 줄어들기 때문에 새롭게 배열을 제작
단 인덱스는 0부터 시작하기 때문에 처음을 0으로 두고 내림차순으로 배치
4) 가능한 조건들을 제외하고 시작하도록 조건문 작성
4-1) 로또 번호와 당첨번호가 전부 다르고 , 알아볼수 없는 번호도 하나도 없는 경우엔 최대등수 6, 최소등수 6
4-2) 알아볼수 없는 번호가 하나도 없지만, 로또 번호와 당첨번호가 전부 같은 경우엔 최대등수 1, 최수등수 1
4-3) 로또 번호가 전부 알아볼수 없는 번호라면 최대등수 1, 최소 등수 6
5) 위 조건문을 제외한 나머지를 최소 등수와 최대등수로 리턴
728x90
'알고리즘 문제' 카테고리의 다른 글
알고리즘 문제 js 35 -문자열 내 마음대로 정렬하기 (0) | 2022.02.05 |
---|---|
알고리즘 문제 js 34- 모의고사 (0) | 2022.02.05 |
알고리즘 문제 js 32- 두개 뽑아서 더하기 (0) | 2022.01.29 |
알고리즘 문제 js 31- 같은 숫자는 싫어 (0) | 2022.01.29 |
알고리즘 문제 js 30- 최소직사각형 (0) | 2022.01.28 |