• 티스토리 홈
  • 프로필사진
    redpome
  • 방명록
  • 공지사항
  • 태그
  • 블로그 관리
  • 글 작성
redpome
  • 프로필사진
    redpome
    • 분류 전체보기 (50)
      • 내일배움캠프 (23)
      • 웹개발 지식 (2)
      • 프로그래머스 (8)
      • React (7)
      • 코딩테스트 (1)
      • UI-UX (1)
      • 타입스크립트 (2)
      • Next.js (3)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
        등록된 공지가 없습니다.
      # Home
      # 공지사항
      #
      # 태그
      # 검색결과
      # 방명록
      • 최솟값 만들기 (그리디 알고리즘)
        2025년 02월 25일
        • redpome
        • 작성자
        • 2025.02.25.:46

        https://school.programmers.co.kr/learn/courses/30/lessons/12941

         

        프로그래머스

        SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

        programmers.co.kr

         

        function solution(A,B){
            let answer=0;
            const sortedA=A.sort((a,b)=>a-b);
            const sortedB=B.sort((a,b)=>b-a);
            for(let i=0;i<A.length;i++){
                answer+=sortedA[i]*sortedB[i];
              
            }
            return answer
        }

         

        답은 매우 간단해 보이지만 왜 저렇게 정렬된 것끼리 곱한건지 생각해야한다, 곱한 값의 누적합을 최소로 만드는 문제이다. 이 문제를 풀기 위해 그리디 알고리즘을 쓴다. 그리디 알고리즘은 매 순간 당장 최선이라고 생각되는 선택을 해서 문제를 해결하는 방법이다.

         

        그리디 알고리즘

        그리디 알고리즘은 각 단계마다 가장 좋은 선택을 한다. 예를 들어, 우리가 어떤 선택을 할 때, 그 순간에 제일 좋아 보이는 (혹은 최소가 될 것 같은) 것을 고르는 것이다. 이 방법이 항상 전체 문제의 최적인 해를 보장하는 건 아니므로 상황에 따라 로직을 만들어야한다.

         

        목표는 A와 B의 각 요소를 한 번씩만 사용해서, 각 쌍의 곱을 더한 값이 최소가 되게 하는 것이다.

         큰 수끼리 곱하면 결과가 커지기 때문에, A 배열에서 작은 수와 B 배열에서 큰 수를 곱해야 한다, 그래서 각각 오름차수, 내림차순으로 정렬한 뒤 곱한 것이다.

         

        단순하게 이 순간에 당장 좋아보이는 것을 선택하면 되는것이다.

         

        Lv.2 문제는 이게 처음으로 접하는 건데 처음이라 초심자의 행운이 깃들었나보다

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

        체육복  (0) 2025.03.11
        카드 뭉치  (0) 2025.03.07
        이상한 문자 만들기  (0) 2025.02.10
        프로그래머스 - 과일 장수  (0) 2025.02.07
        프로그래머스 - 소수 만들기  (2) 2025.01.14
        다음글
        다음 글이 없습니다.
        이전글
        이전 글이 없습니다.
        댓글
      조회된 결과가 없습니다.
      스킨 업데이트 안내
      현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
      ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
      목차
      표시할 목차가 없습니다.
        • 안녕하세요
        • 감사해요
        • 잘있어요

        티스토리툴바