Softeer 7353번
https://softeer.ai/practice/7353
✔️ 매우 간단한 문제이다 (정렬)
가장 큰 값을 만들어내면 된다.
처음에 그냥 첫번째 곱하기 arr[1] ~ arr[n]
했는데 틀렸다.
이유는 문제에서 음수가 있다고 그랬는데 내가 그걸 고려하지 않았다.
그래서 푸는 방법은
오름차순 정렬하면 제일 앞에는 음수가 있을 경우에는 음수가 오겠지?
-5, -4 ... 있다고 하면 곱은 20이 됨
근데 제일 뒤에 가장 큰수 2, 3 이라고 하면 6이 된다.
이럴 경우를 생각해야함
import java.io.*;
import java.util.*;
public class Main {
// input
private static BufferedReader br;
// variables
private static int N;
private static int[] arr;
public static void main(String[] args) throws IOException {
br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
input();
bw.write(solve());
bw.close();
} // End of main()
private static String solve() {
StringBuilder sb = new StringBuilder();
Arrays.sort(arr);
int ans = Math.max(arr[0] * arr[1], arr[N-1] * arr[N-2]);
sb.append(ans);
return sb.toString();
} // End of solve()
private static void input() throws IOException {
N = Integer.parseInt(br.readLine());
arr = new int[N];
StringTokenizer st = new StringTokenizer(br.readLine());
for(int i=0; i<N; i++) {
arr[i] = Integer.parseInt(st.nextToken());
}
} // End of input()
} // End of Main class