Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Method
- geometry
- dynamic programming
- Counting
- 코테
- Number Theory
- 코딩테스트
- database
- 구현
- 자바
- simulation
- SQL
- Math
- two pointers
- greedy
- string
- 파이썬
- Binary Tree
- Data Structure
- hash table
- Class
- implement
- Stack
- bit manipulation
- Binary Search
- sorting
- java
- array
- Tree
- Matrix
Archives
- Today
- Total
코린이의 소소한 공부노트
[LeetCode/Easy] 643. Maximum Average Subarray I 본문
1. Input
1) int[] nums
2) int k
2. Output
1) nums의 부분배열 중 길이가 k인 것을 찾은 다음, 그 중 평균값이 가장 큰 부분배열의 평균을 double로 반환
3. Constraint
1) n == nums.length
2) 1 <= k <= n <= 10^5
3) - 10^4 <= nums[i] <= 10^4
4. Example
Input: nums = [1,12,-5,-6,50,3], k = 4 -> Output: 12.75000
설명: nums[1]부터 nums[4]까지의 부분 배열의 평균이 (12 - 5 - 6 + 50) / 4 = 51 / 4 = 12.75로 가장 크다.
5. Code
1) 첫 코드(2023/03/09)
double answer = 0;
for(int i=0 ; i<k ; i++)
answer += nums[i];
double presum = answer;
for(int i=1 ; i<nums.length-k+1 ; i++){
presum += nums[i+k-1]-nums[i-1];
if(presum>answer) answer = presum;
}
return nums.length>1 ? answer/k : (double)nums[0];
- presum을 쓰지 않았을 때 시간 초과인 것이 있었는데, presum을 사용하니까 런타임이 상위 19퍼가 됐다.
'코딩테스트 풀이 > JAVA' 카테고리의 다른 글
[LeetCode/Easy] 2544. Alternating Digit Sum (0) | 2023.03.10 |
---|---|
[LeetCode/Easy] 645. Set Mismatch (0) | 2023.03.10 |
[LeetCode/Easy] 2553. Separate the Digits in an Array (0) | 2023.03.08 |
[백준 온라인 저지] 11718. 그대로 출력하기 (0) | 2023.03.07 |
[백준 온라인 저지] 9086. 문자열 (0) | 2023.03.07 |