1. 문제
https://www.acmicpc.net/problem/1027
2. 풀이 과정
1. 자신의 오른쪽만 보면서 업데이트한다.
2. 기울기가 증가하는 지점만 count한다.
import java.io.*;
import java.util.*;
public class Boj1027 {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
int arr[] = new int[N];
int result[] = new int[N];
StringTokenizer st = new StringTokenizer(br.readLine());
for(int i=0; i<N; i++) {
arr[i] = Integer.parseInt(st.nextToken());
}
int max = 0;
for(int i=0, iMax=N-1; i<iMax; i++) {
//기울기
double d = -1000000001;
for(int j=i+1; j<N; j++) {
double now = (double)(arr[j]-arr[i])/(j-i);
if(d < now) {
result[i]++;
result[j]++;
d = now;
}
}
max = Math.max(max, result[i]);
}
max = Math.max(max, result[N-1]);
System.out.print(max);
}
}
'코딩문제풀이 > Baekjoon' 카테고리의 다른 글
[Java] 백준 1917번 : 정육면체 전개도* (0) | 2022.08.23 |
---|---|
[Java] 백준 1113번 : 수영장 만들기* (0) | 2022.08.06 |
[Java] 백준 17780번 : 새로운 게임 (0) | 2022.07.05 |
[Java] 백준 23791번 : K번째 음식 찾기 1 (0) | 2022.07.05 |
[Java] 백준 2056번 : 작업* (0) | 2022.07.01 |