2025-07-26

오늘 배운 것

  1. 알고리즘
    • 슬라이딩 윈도우
    • 투 포인터
      public class SlidingWindow {
      
       // 슬라이딩 윈도우 예시: 최대 부분 배열의 합 (길이가 k인)
       public static int maxSubArraySum(int[] arr, int k) {
          int n = arr.length;
          if (n < k) {
                return -1; // 에러 처리
          }
      
          int window_sum = 0;
          for (int i = 0; i < k; i++) {
                window_sum += arr[i];
          }
      
          int max_sum = window_sum;
          for (int i = k; i < n; i++) {
                window_sum += arr[i] - arr[i - k];
                max_sum = Math.max(max_sum, window_sum);
          }
          return max_sum;
       }
      
       // 투 포인터 예시: 배열에서 두 수의 합이 특정 값과 같은 쌍 찾기
       public static boolean findSumPairs(int[] arr, int target) {
          int left = 0;
          int right = arr.length - 1;
      
          while (left < right) {
                int sum = arr[left] + arr[right];
                if (sum == target) {
                   return true;
                } else if (sum < target) {
                   left++;
                } else {
                   right--;
                }
          }
          return false;
       }
      
       public static void main(String[] args) {
          int[] arr = {1, 4, 2, 10, 2, 3, 1, 0, 20};
          int k = 4;
          System.out.println("Maximum sum of subarray of size " + k + ": " + maxSubArraySum(arr, k)); // 출력: 24
      
          int[] arr2 = {2, 7, 11, 15};
          int target = 9;
          System.out.println("Found pair with sum " + target + ": " + findSumPairs(arr2, target)); // 출력: true
       }
      }
      

내일 할 일

  1. 깃허브 블로그 세팅(con.)
    1. 기타 문제 발생 시 해결
  2. 신한 해커톤 기획서 초안 확인 및 구체화

참고자료

results matching ""

    No results matching ""