문제 링크
https://softeer.ai/practice/7353
Note
배열 타입에 주의해서 사용할 타입의 배열로 잘 변환할 수 있도록 주의합니다.
두 수를 곱해서 최대 값을 구하는 것이기 때문에, 음수 * 음수
, 음수 * 양수
를 주의 합니다.
땅의 비옥도를 sort해서 배열의 양 끝에서 각각 2개의 인자(arr[0],arrr[1])를 곱하고 더 큰 값을 출력합니다.
제출한 코드
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(reader.readLine()); //주어진 위치의 개수
String[] arrStrF = reader.readLine().split(" "); //주어진 토양의 비옥함 배열
Integer[] arrIntF = new Integer[n];
for(int i = 0; i < n; i++) arrIntF[i] = Integer.parseInt(arrStrF[i]);
//arrIntF를 sort한다.
//[0]*[1] 와 [n-2]*[n-1]을 비교해서 큰 수 출력
//n이 2라면 [0]*[1] 출력
Arrays.sort(arrIntF);
System.out.println(Math.max(arrIntF[0]*arrIntF[1],arrIntF[n-1]*arrIntF[n-2]));
}
}
반응형
'코딩테스트 > Java' 카테고리의 다른 글
소프티어/자바 lv.1 주행거리 비교하기 (0) | 2024.03.28 |
---|---|
프로그래머스/자바 lv.2 JadenCase 문자열 만들기 - Stack, String.join() (0) | 2024.03.27 |
소프티어/자바 lv.1 위험한 효도 - Java, 풀이, 힌트 (1) | 2024.03.26 |