728x90
https://www.acmicpc.net/problem/3673
728x90
메모리: 121,256 KB , 시간: 792 ms
사용 알고리즘: 수학, 누적 합
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws Exception{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
StringBuilder answer = new StringBuilder();
int c = Integer.parseInt(br.readLine());
int d, n, sum, tmp, result;
Map<Integer, Integer> map;
for (int tc = 0; tc < c; tc++) {
st = new StringTokenizer(br.readLine());
d = Integer.parseInt(st.nextToken());
n = Integer.parseInt(st.nextToken());
map = new HashMap<>();
sum = 0;
result = 0;
st = new StringTokenizer(br.readLine());
for (int i = 0; i < n; i++) {
sum += Integer.parseInt(st.nextToken());
sum %= d;
tmp = map.getOrDefault(sum, 0);
result += tmp;
if(sum % d == 0) result++;
map.put(sum, tmp + 1);
}
answer.append(result + "\n");
}
System.out.println(answer);
}
}
728x90
'Problem Solving > BOJ' 카테고리의 다른 글
[백준, BOJ 14676] 영우는 사기꾼? (java) (0) | 2024.02.27 |
---|---|
[백준, BOJ 2660] 회장뽑기 (java) (0) | 2024.02.25 |
[백준, BOJ 18769] 그리드 네트워크 (java) (1) | 2024.02.25 |
[백준, BOJ 2056] 작업 (java) (0) | 2024.02.25 |
[백준, BOJ 2571] 색종이 - 3 (java) (0) | 2024.02.19 |