Загружаем каталог…
Загружаем каталог…
문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/12941?language=java 난이도 : Lv.2 분류 : 구현 요약 : A 배열과 B 배열 안의 각 요소를 곱하고 더한 경우의 수 중 가장 낮은 값을 구하기 접근 방법 입력 크기 / 시간 제한으로 판단한 방향: 경우의 수 탐색하기 사용한 알고리즘 / 자료구조와 선택 이유: 순열 => 정렬 후 계산 풀이 코드 기존 풀이 코드 class Solution { int [] A, B; boolean [] v; int answer = Integer.MAX_VALUE; void combination(int depth, int sum) { if (depth == A.length) { answer = Math.min(answer, sum); return ; } for (int i=0;i<v.length;i++) { if (!v[i]) { v[i] = true; combination(depth + 1, sum + A[depth] * B[i]); v[i] = false; } } } public int solution(int []A, int []B) { this.A = A; this.B = B; v = new boolean [A.length]; combination(0, 0); return answer; } } 개선 코드 import java.util.Arrays; class Solution { public int solution(int []A, int []B) { int answer = 0, len = A.length; Arrays.sort(A); Arrays.sort(B); for (int i=0;i<len;i++) { answer += A[i] * B[len-1-i]; } return answer; } } 복잡도 시간: O(n!) => O(nlogn); 공간: O(nlogn)
То, что RADAR обнаружил и классифицировал для этой возможности. Это опубликованный источником текст, а не подтверждение, что предложение ещё действует.
# [프로그래머스 LV2] 최솟값 만들기 (Java). 문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/12941?language=java 난이도 : Lv.2 분류 : 구현 요약 : A 배열과 B 배열 안의 각 요소를 곱하고 더한 경우의 수 중 가장 낮은 값을 구하기 접근 방법 입력 크기 / 시간 제한으로 판단한 방향: 경우의 수 탐색하기 사용한 알고리즘 / 자료구조와 선택 이유: 순열 => 정렬 후 계산 풀이 코드 기존 풀이 코드 class Solution { int [] A, B; boolean [] v; int answer = Integer.MAX_VALUE; void combination(int depth, int sum) {…
Открыть источник