티스토리 뷰

알고리즘이 너무약해서 우선은 쉬운것부터 차근히 시작하기로. 

천천히 성장하자

프로그래머스 Level1 1번문제

 

풀수있을까 했는데 다행히 풀었다!

 

나의 풀이

function solution(lottos, win_nums) {
    let answer = [];
    let matchcount = 0; //0개  //2개 
    let zerocount = 0; //6개 //2개
    // 0 인 값을 제외시킨다.
    // 
    for(let i=0; i<lottos.length; i++){
        if(lottos[i] === 0 ){
                zerocount ++
            }
        for(let j=0; j<win_nums.length; j++){
            if(lottos[i] === win_nums[j]){
                matchcount ++
                break;
            }
        }
    } // 지금까지나온 로또 넘버가 보인다. //최고 순위 최저순위 생각 

    answer[0]= Math.min(7-(matchcount+zerocount),6)
    answer[1]= Math.min(7-matchcount,6)
    return answer


}

아래 좋은풀이

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]];
}

 

나는 아직 기본 문법으로만 풀고있는데

rank로 미리 배열을 만들어주는 방법도있었다.

다른사람의좋은코드도 잘흡수하자

'알고리즘 > 프로그래머스' 카테고리의 다른 글

나누어 떨어지는 숫자 배열  (0) 2021.12.12
콜라츠추측  (0) 2021.12.09
최소공배수 최대공약수  (0) 2021.12.09
없는 숫자 더하기  (0) 2021.11.19
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG more
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함