728x90
- 바이토닉 수열의 개수 반환
(입력)
1, 3, 2, 5, 7, 4, 2, 5, 1
(출력)
# ArrayList 사용
import java.util.ArrayList;
public class Main {
private int solution(int[] nums) {
int result = 0;
int n = nums.length;
ArrayList<Integer> peaks = new ArrayList<>();
for(int i=1; i<n-1; i++) {
if(nums[i-1] < nums[i] && nums[i] > nums[i+1])
peaks.add(i);
}
for(int p : peaks) {
int lt = p;
int rt = p;
int lcnt = 0;
int rcnt = 0;
while(lt-1 >= 0 && nums[lt-1] < nums[lt]) {
lt--;
lcnt++;
}
while(rt+1 < n && nums[rt] > nums[rt+1]) {
rt++;
rcnt++;
}
result += (lcnt*rcnt);
}
return result;
}
public static void main(String[] args) {
Main T = new Main();
int[] nums = new int[]{1, 3, 2, 5, 7, 4, 2, 5, 1};
System.out.println(T.solution(nums)); // 6
}
}
반응형
'전.java' 카테고리의 다른 글
[Java] 회문 문자열 (0) | 2024.04.07 |
---|---|
[Java] 문자열 압축 (0) | 2024.04.07 |
[Java] 최대 길이 바이토닉 (0) | 2023.02.01 |
[Java] 바이토닉 수열 (0) | 2023.01.31 |
[Java] 가장 높은 증가수열 (0) | 2023.01.31 |