[LeetCode] 643. Maximum Average Subarray I

2025. 4. 10. 12:24·코딩테스트/Python
728x90
반응형

🔗 Problem Link

https://leetcode.com/problems/maximum-average-subarray-i/description/


❔Thinking

  • 숫자 배열 nums와 k가 주어질 때, k개의 연속된 부분 수열 중 가장 큰 평균을 반환한다.

💻Solution

1. 평균으로 비교하기

def findMaxAverage(self, nums: List[int], k: int) -> float:
    max_avg = -(10**4 * 10**5 + 1)
    left, right = 0, 0
    window_sum = 0
    while right < len(nums):
        window_sum += nums[right]
        if (right-left+1) == k:
            max_avg = max(max_avg, window_sum / k if window_sum > 0 else -(-window_sum / k))
            window_sum -= nums[left]
            left = left+1
        right += 1
    return max_avg

 

2. 합의 최대를 비교하고, 마지막에 평균 반환하기

def findMaxAverage(self, nums: List[int], k: int) -> float:
    window = sum(nums[:k])
    max_sum = window
    for i in range(k, len(nums)):
        window += (nums[i] - nums[i-k])
        max_sum = max(max_sum, window)
    return max_sum / k

🗝️keypoint

  1. 평균이 가장 크다는 의미는, k개 숫자의 합이 가장 크다는 의미와 동일하다.
  2. max()를 통해 더 큰 평균값을 비교하는 연산의 횟수는 같으나, 평균값을 구하는 연산 횟수에서 풀이 시간의 차이가 발생한다.
저작자표시 (새창열림)

'코딩테스트 > Python' 카테고리의 다른 글

[LeetCode] 1456. Maximum Number of Vowels in a Substring of Given Length  (0) 2025.04.24
[Baekjoon] 1013. Contact  (0) 2025.04.11
[LeetCode] 283. Move Zeroes  (0) 2025.04.07
[Programmers] Level 2. 아날로그 시계  (0) 2025.03.26
[LeetCode] 443. String Compression  (0) 2025.03.26
'코딩테스트/Python' 카테고리의 다른 글
  • [LeetCode] 1456. Maximum Number of Vowels in a Substring of Given Length
  • [Baekjoon] 1013. Contact
  • [LeetCode] 283. Move Zeroes
  • [Programmers] Level 2. 아날로그 시계
swwho
swwho
일상을 데이터화하다
  • swwho
    하루한장
    swwho
  • 전체
    오늘
    어제
    • 분류 전체보기 (188)
      • ML_DL (39)
        • MUJAKJUNG (무작정 시리즈) (18)
        • 딥러닝 공부하기 (21)
      • 데이터사이언스 (1)
        • EDA (1)
        • 데이터과학을 위한 통계 (0)
      • 데이터엔지니어링 (2)
      • 논문리뷰 (2)
        • Computer Vision (2)
      • Python 활용하기 (12)
      • 코딩테스트 (127)
        • Python (109)
        • MySQL (14)
      • Git (3)
      • MySQL 활용하기 (0)
      • 일상 이야기 (1)
  • 블로그 메뉴

    • 홈
    • 태그
  • 최근 글

  • 250x250
  • hELLO· Designed By정상우.v4.10.3
swwho
[LeetCode] 643. Maximum Average Subarray I
상단으로

티스토리툴바