티스토리 뷰

알고리즘

<Programmers> 최솟값 만들기

koyuchang 2020. 4. 29. 17:19

처음엔 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
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
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
글 보관함