알고리즘 공부 - Day05

설하나·2022년 10월 13일
0

알고리즘

목록 보기
5/22
post-thumbnail

알고리즘공부 5일차...! 드디어 1단계를 다 풀고 2단계로 넘어왔다.
오늘도 열심히 풀어보자구~

🖥 프로그래머스 🖥

1. 최솟값 만들기

길이가 같은 배열 A, B 두개가 있고, 각 배열은 자연수로 이루어져 있다.
배열 A, B에서 각각 한 개의 숫자를 뽑아 두 수를 곱한다.
이러한 과정을 배열의 길이만큼 반복하며, 두 수를 곱한 값을 누적하여 더하는데, 이때 최종적으로 누적된 값이 최소가 되도록 만드는 것이 목표!!!
(단, 각 배열에서 k번째 숫자를 뽑았다면 다음에 k번째 숫자는 다시 뽑을 수 없다.)
나의 풀이는 아래와 같다.

function solution(A,B){
    var answer = 0;
    let newA = A.sort((x,y)=>{return x-y})
    let newB = B.sort((x,y)=>{return y-x})
    for(let i = 0;i<A.length;i++){
        answer += newA[i]*newB[i]
    }

    return answer;
}

내 생각은 A배열을 오름차순으로 정렬을하고, B배열은 내림차순으로 정렬을 한후 순서대로 곱한 후 누적값을 구하게되면 가장 최소값이 나온다는 생각으로 알고리즘을 작성해보았다.
오랜만에 sort 메서드를 사용하려다 보니 스펠링조차 헷갈렸다...
꾸준이 메서드 공부를 해야겠구나를 느꼈다.
따라서 앞으로는 알고리즘을 풀고 해당 알고리즘에서 사용한 매서드들을 아래에 정리하고자 한다...! 버전 업그래이드!!!!

✏️ sort() 매서드

Javascript에서 배열을 정렬하기 위해서는 sort() 함수를 사용한다.
즉, 배열에서 사용하는 매서드이다.

sort() 파라미터

정렬 순서를 정의하는 함수가 들어가며 이 값이 생략되면, 배열의 element들은 문자열로 취급되어, 유니코드 값 순서대로 정렬됩니다.
파라미터로는 함수를 받는데,
이 함수는 두 개의 배열 element를 파라미터로 입력 받습니다.
이 함수가 a, b 두개의 element를 파라미터로 입력받을 경우,
이 함수가 리턴하는 값이 0보다 작을 경우,  a가 b보다 앞에 오도록 정렬하고,
이 함수가 리턴하는 값이 0보다 클 경우, b가 a보다 앞에 오도록 정렬합니다.
만약 0을 리턴하면, a와 b의 순서를 변경하지 않습니다.

리턴값

내가 입력한 함수의 규칙에 따라서 정렬된 배열을 리턴합니다.
이때, 원본 배열인 arr가 정렬이 되고, 리턴하는 값 또한 원본 배열인 arr을 가리키고 있다.

출처

profile
Backend

0개의 댓글