[백준/Gold III] 나머지 합 - 10986

2024. 10. 19. 18:45·코딩 테스트 정복기/백준
반응형

[Gold III] 나머지 합 - 10986

문제 링크

성능 요약

메모리: 244256 KB, 시간: 752 ms

분류

수학, 누적 합

제출 일자

2024년 10월 14일 17:22:27

문제 설명

수 N개 A1, A2, ..., AN이 주어진다. 이때, 연속된 부분 구간의 합이 M으로 나누어 떨어지는 구간의 개수를 구하는 프로그램을 작성하시오.

즉, Ai + ... + Aj (i ≤ j) 의 합이 M으로 나누어 떨어지는 (i, j) 쌍의 개수를 구해야 한다.

입력

첫째 줄에 N과 M이 주어진다. (1 ≤ N ≤ 106, 2 ≤ M ≤ 103)

둘째 줄에 N개의 수 A1, A2, ..., AN이 주어진다. (0 ≤ Ai ≤ 109)

출력

첫째 줄에 연속된 부분 구간의 합이 M으로 나누어 떨어지는 구간의 개수를 출력한다.

 import java.io.*;
import java.util.*;


public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        long m = Integer.parseInt(br.readLine().split(" ")[1]);
        long[] arr = Arrays.stream(br.readLine().split(" ")).mapToLong(Long::parseLong).toArray();
        Map<Long, Integer> map = new HashMap<>();
        long sum = 0;
        for(long n : arr) {
            sum = (sum+n)%m;
            map.put(sum, map.getOrDefault(sum, 0) + 1);
        }

        long answer = 0, cnt;
        for(long key : map.keySet()) {
            cnt = map.get(key);
            if(key == 0){cnt++;}
            answer += cnt*(cnt-1)/2;
        }
        System.out.println(answer);
    }
}
728x90
반응형

'코딩 테스트 정복기 > 백준' 카테고리의 다른 글

[백준/Gold V] 토마토 - 7576  (0) 2024.10.20
[백준/Gold V] 평범한 배낭 - 12865  (4) 2024.10.20
[백준/Silver IV] ATM - 11399  (1) 2024.10.18
[백준/Gold V] Z - 1074  (0) 2024.10.16
[백준/Silver I] 쉬운 최단거리 - 14940  (0) 2024.10.16
'코딩 테스트 정복기/백준' 카테고리의 다른 글
  • [백준/Gold V] 토마토 - 7576
  • [백준/Gold V] 평범한 배낭 - 12865
  • [백준/Silver IV] ATM - 11399
  • [백준/Gold V] Z - 1074
settong
settong
    250x250
  • settong
    개 발 자 국
    settong
  • 전체
    오늘
    어제
    • 전체보기 (202)
      • Computer Science (50)
        • Network (7)
        • Operating System (18)
        • Data Structure (9)
        • Database (11)
        • Algorithm (5)
      • Language (17)
        • Java (17)
        • Javascript (0)
        • Python (0)
      • Devops (20)
        • AWS (0)
        • Naver Cloud (16)
        • CICD (3)
        • 웹 서버 관리 (1)
      • Front (0)
        • React (0)
      • Backend (5)
        • Spring (5)
      • 코딩 테스트 정복기 (110)
        • 백준 (51)
        • 프로그래머스 (53)
        • 기타 (6)
      • etc (0)
      • 경제 상식 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    ncp200
    벨만포드
    ncp
    BFS
    다익스트라
    DFS
    lcs
    완전탐색
    다이나믹프로그래밍
    프로그래머스
    github actions
    Network
    분할정복
    백준
    Spring Boot
    CI/CD
    백트래킹
    ncp202
    집합
    해시
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
settong
[백준/Gold III] 나머지 합 - 10986
상단으로

티스토리툴바