Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- fragment identifier
- 순열
- 2017 카카오 코드
- 에라토스테네스의 체
- 문자열
- 후위 표기법
- python
- 규칙찾기
- Dynamic Programming
- Java
- 완전 탐색
- HashSet
- 프로그래머스
- 알고리즘
- 완전탐색
- 어려웠던 문제
- pandas
- 튜플
- Stack
- 조합
- 영문자 확인
- 반복문
- dfs
- 보이어무어
- HashMap
- 쿼드압축 후 개수세기
- 메뉴리뉴얼
- 동적계획법
- 점프와 순간이동
- 최소공배수
Archives
- Today
- Total
csmoon1010의 SW 블로그
[200901] 최솟값만들기 - 연습문제(level2) 본문
1. 문제 이해
- 배열 A, B : 같은 길이. 자연수로 이루어짐
- A,B에서 각각 한 개씩, 한 번씩 곱해 구한 누적합의 최솟값 return
2. 전략
(1) 규칙
: (큰 값) X (큰 값)을 하면 값이 더 커짐
→ 작을수록 큰 값과 곱해지도록 해야함
→ 두 배열을 각각 오름차순, 내림차순 sort한 후 차례로 곱하기
(2) sort
- Arrays.sort()를 이용해 각각 오름차순으로 sort
- A는 0번 index부터, B는 size-2번 index부터 차례로 곱하기
3. 참고 사항
- Arrays.sort(arr, Collections.reverseOrder()), Arrays.sort(arr, Comparator.reverseOrder())
: int 배열에 대해서는 적용이 불가. String 배열, ArrayList 컬렉션에 적용해야 이용 가능!
+a> PriorityQueue 구현 시 이용함 - PriorityQueue<Integer> pq = new PriorityQueue<>(Collections.reverseOrder());
4. 코드
import java.util.*;
class Solution
{
public int solution(int []A, int []B)
{
int answer = 0;
Arrays.sort(A);
Arrays.sort(B);
int size = B.length;
for(int i = 0; i < size; i++){
answer += A[i]*B[size-i-1];
}
return answer;
}
}
'Coding Test > 프로그래머스' 카테고리의 다른 글
[200904] 행렬의 곱셈 - 연습문제(level2) (0) | 2020.09.05 |
---|---|
[200904] 피보나치 수 - 연습문제(level2) (0) | 2020.09.04 |
[200901] 최댓값과 최솟값 - 연습문제(level2) (0) | 2020.09.01 |
[200831] 폰켓몬 - 찾아라 프로그래밍 마에스터(level2) (0) | 2020.08.31 |
[200811] 숫자의 표현 - 연습문제(level2) (0) | 2020.08.11 |
Comments