ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [프로그래머스 level.1] max, 반복되는 인덱스
    카테고리 없음 2023. 6. 20. 13:58

    모의고사

    function solution(answers) {
        const first = [1, 2, 3, 4, 5]; //5
        const second = [2, 1, 2, 3, 2, 4, 2, 5]; // 8
        const third = [3, 3, 1, 1, 2, 2, 4, 4, 5, 5]; //10
        let scores = [0, 0 ,0]
        for (let i = 0; i < answers.length; i++) {
            if (first[i % 5] === answers[i]) {scores[0] ++};
            if (second[i % 8] === answers[i]) {scores[1] ++};
            if (third[i % 10] === answers[i]) {scores[2] ++};
        }
        let answer = []
        let max = Math.max(...scores)
        if (scores[0] === max) {answer.push(1)};
        if (scores[1] === max) {answer.push(2)};
        if (scores[2] === max) {answer.push(3)};
        return answer;
    }

    Math.max 값 안에 배열을 집어넣을 수 없다는 것을 다시 한번 기억하고 spread 함수 잘 써서 max 값 구하자 

     

    인덱스를 나누는 방식을 기억해 놓으면 좋을 것 같다 이거 은근 잘 써먹을 수 있을 지 않을까 생각이 든다

     

    다 풀어놓고 보니까 반복문이랑 if문이 좀 많이 들어가서 filter함수나 삼항연산자와 && || 같은 애들로 리팩토링 하고 싶은 마음이 들다가 만다.

    댓글

Designed by Tistory.