https://www.acmicpc.net/problem/22945
생각보다 효율성을 맞추는 것이 굉장히 까다로웠던 문제.
O(N)으로 해결할 방법을 찾는 것이 핵심인 문제였다. (투포인터로 해결)
package BOJ.투포인터;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.StringTokenizer;
import java.util.function.Function;
public class BOJ_22945_팀빌딩 {
static Function<String, Integer> stoi = Integer::parseInt;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int ans = 0;
int n = stoi.apply(br.readLine());
int[] developers = new int[n];
StringTokenizer st = new StringTokenizer(br.readLine());
for (int i = 0; i < n; i++) {
developers[i] = stoi.apply(st.nextToken());
}
int left = 0;
int right = n - 1;
while (left != right) {
ans = Math.max(ans, (right - left - 1) * Math.min(developers[left], developers[right]));
if (developers[left] < developers[right]) {
left++;
} else {
right--;
}
}
System.out.println(ans);
}
}
'알고리즘 > 백준' 카테고리의 다른 글
백준 22935번 이진딸기 (JAVA) (0) | 2021.10.02 |
---|---|
백준 21922번 학부연구생민상 (JAVA) (0) | 2021.10.02 |
백준 1949번 우수 마을 (JAVA) (0) | 2021.08.08 |
백준 5014번 스타트링크 (JAVA) (0) | 2021.08.08 |
백준 11780번 플로이드 2 (JAVA) (0) | 2021.08.01 |