티스토리 뷰
처음엔 DP(동적 계획법)을 이용하여 푸는 것인 줄 알고 고생을 많이 했다. 결국 도저히 모르겠어서 구글을 통해 알게 되었는데 "최솟값을 구하기 위한 규칙은 각 배열에서 가장 작은 값과 가장 큰 값을 곱하는 것이다."
그러기 위해 A배열은 오름차순, B배열은 내림차순으로 설정하여야 한다.
A는 Arrays.sort()로 쉽게 할 수 있었지만, B를 역순으로 하는데 어려움이 있었다. aslist로 list로 넣은 뒤에 Collections.reverseorder로 역순으로 표현하려고 했지만, List <Integer> list = Arrays.aslist(B)에 빨간 줄이 생기며 불가능하다는 것을 알게 되었다. 다시 한번 블로그를 참고하니 Primitive 타입에는 적용되지 않고 Non-primitive 타입에만 허용되는 변환이었다.(int, long 등 은 불가).
해결방법!
배열 B를 list에 넣은 다음 아래 그림의 식으로 내림차순 정렬하여 해결!
[내 코드]
물론 더 간단한 방법도 있다.
[참고한 풀이]
'알고리즘' 카테고리의 다른 글
<Programmers> 행렬의 곱셈(실패) (0) | 2020.04.30 |
---|---|
<Programmers> 피보나치 수 (0) | 2020.04.29 |
<Programmers> 최댓값과 최솟값 (0) | 2020.04.29 |
<Programmers> 숫자의 표현 (0) | 2020.04.29 |
<Programmers> 땅따먹기 (0) | 2020.04.28 |