Lewis's Tech Keep
[BOJ][20300] 서강근육맨 - JAVA 본문
링크 : https://www.acmicpc.net/problem/20300
- 풀이는 좋은 글의 도움을 받았다. (https://giiro.tistory.com/entry/%EB%B0%B1%EC%A4%80-20300-%EC%84%9C%EA%B0%95%EA%B7%BC%EC%9C%A1%EB%A7%A8)
- 최대값의 최소값을 구하는 문제
- 운동기구로 2번만 조지기(?) 때문에 오름차순 정렬 후 끝에서 부터 "최대값 + 최소값" 의 최대값을 구하면 해당 값의 최소값이 나오게 된다.
- 그리고 범위가 10^18 이므로 int로 감당할 수 없는 범위임을 인식할 것.
더보기
import java.util.Arrays;
import java.util.Scanner;
class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
long answer;
long[] t = new long[N];
for (int i = 0; i < N; i++) {
t[i] = sc.nextLong();
}
Arrays.sort(t);
if (N % 2 == 1) {
answer = t[N - 1];
for (int i = 0; i < (N-1) / 2; i++) {
answer = Math.max(answer, t[i] + t[N-2-i]);
}
} else {
answer = t[0] + t[N - 1];
for (int i = 1; i < N / 2; i++) {
answer = Math.max(answer, t[i] + t[N-1-i]);
}
}
System.out.println(answer);
}
}
'Java > 알고리즘' 카테고리의 다른 글
[BOJ][6497] 전력난 - JAVA (0) | 2021.06.13 |
---|---|
[프로그래머스] 다단계 칫솔 판매 (0) | 2021.06.12 |
[백준] 분해합 (0) | 2021.06.08 |
[프로그래머스] 리틀 프렌즈 사천성 - 실패 코드 (0) | 2021.05.26 |
[프로그래머스] 가장 먼 노드 (0) | 2021.05.01 |
Comments