https://school.programmers.co.kr/learn/courses/30/lessons/120862
1. 이중 for문, ArrayList 활용해서 최댓값 구하기
2. 최솟 값 두 개 곱하고, 최댓값 두 개 곱해서 그 두 개 중에서 큰 값 찾기(음수가 없다면 최댓값 두 개 곱해서 출력하면 된다..!)
1번
import java.util.ArrayList;
class Solution {
public int solution(int[] numbers) {
ArrayList<Integer> multipleList = new ArrayList<>();
// numbers의 각 배열 곱해서 multipleList에 담기
for(int i=0; i<numbers.length; i++) {
for(int j=i+1; j<numbers.length; j++) {
multipleList.add(numbers[i]*numbers[j]);
}
}
// multipleList에서 제일 큰 값 찾기
int answer = multipleList.get(0);
for(Integer i : multipleList) {
if(answer < i) answer = i;
}
return answer;
}
}
- ArrayList에서 최댓값 찾을 때 Collections.max()를 이용해서 최댓값을 찾을 수도 있다! (import java.util.Collections)
- return Collections.max(multipleList);
2번
import java.util.*;
class Solution {
public int solution(int[] numbers) {
Arrays.sort(numbers);
int min = numbers[0]*numbers[1];
int max = numbers[numbers.length-2]*numbers[numbers.length-1];
return Math.max(min, max);
}
}
- 처음 문제를 봤을 때 이중 for문으로 하면 되겠다 이생각으로 했는데 for문 없어도 정렬 한 뒤에 Math.max( ) 함수로 하면 더 빠르게 할 수 있었다..!
- ArrayList에서 최댓값 Collections.max( ) 와 최솟값 Collections.min( )..! => for문 돌리는 거랑 큰 시간 차이는 없는 것 같았다...!
'algorithm > Programmers' 카테고리의 다른 글
[JAVA] 문자열 정렬하기 (2) (0) | 2023.03.20 |
---|---|
[JAVA] 숫자 찾기 (0) | 2023.03.20 |
[JAVA] n의 배수 고르기 (0) | 2023.03.19 |
[JAVA] 제곱수 판별하기 (0) | 2023.03.16 |
[JAVA] 문자열 안에 문자열 (0) | 2023.03.15 |