개발새발

  • 홈
  • 태그
  • 방명록

10986 1

[백준/Java] 10986. 나머지 합

🧩  문제 설명정수로 이루어진 수열이 주어졌을 때,부분 구간의 합이 M으로 나누어떨어지는 경우의 수를 구하는 문제!부분 구간은 연속된 구간이어야 함.범위: 1 ≤ N ≤ 1,000,000예시 입력:5 3 1 2 3 1 2 예시 출력:7💡 핵심 아이디어이 문제는 완전탐색(O(N²))으로는 시간 초과가 나기 때문에누적합(Prefix Sum) + 나머지의 개수 세기(counting)를 이용해서 O(N) 으로 해결해야 한다!📌  수학 개념sum[j] - sum[i] 가 M으로 나누어떨어진다⟺ sum[j] % M == sum[i] % M즉, 누적합의 나머지가 같은 두 시점을 고르면,그 사이 구간의 합은 M으로 나누어떨어짐!✅  알고리즘 흐름누적합을 계산하면서 M으로 나눈 나머지를 구함나머지 값의 등장 횟수..

알고리즘/백준 2025.03.23
이전
1
다음
더보기
프로필사진

개발새발

방문자수Total

  • Today :
  • Yesterday :
  • 분류 전체보기 (102)
    • 네트워크 (7)
      • 기본 (7)
    • Java (22)
      • 기본 (14)
      • 알고리즘 (3)
      • Effective Java (2)
      • 강의 (0)
      • Spring (3)
    • JavaScript (16)
      • 기본 (1)
      • 응용하기 (5)
    • Node.js (11)
      • React (8)
      • Vue (0)
    • Sql (4)
    • 개발 (9)
      • 개발 일상 (2)
      • 개발 지식 (1)
      • 결제 (1)
      • 알면 좋은 (5)
    • Python (13)
      • 기본 (11)
      • 알고리즘 (2)
    • AWS (2)
    • 알고리즘 (18)
      • 개념 (3)
      • Programmers (6)
      • LeetCode (7)
      • 백준 (2)

Copyright © Kakao Corp. All rights reserved.

티스토리툴바