목록문제 (388)
sm 기술 블로그
import java.util.*; import java.io.*; class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); String[] tmp1 = br.readLine().split(" "); int N = Integer.parseInt(tmp1[0]); int M = Integer.parseInt(tmp1[1]); int[][] arr = new int[N + 1][N + 1]; // 값 넣기 for (int i = 1; ..
import sys input = sys.stdin.readline N, M = map(int, input().split()) arr = [[0]*(N+1)] + [[0]+list(map(int,input().split())) for _ in range(N)] result = "" for i in range(1, N+1): for j in range(1, N+1): arr[i][j] = arr[i][j] + arr[i-1][j] + arr[i][j-1] - arr[i-1][j-1] for _ in range(M): x1,y1,x2,y2 = map(int, input().split()) tmp = 0 tmp = arr[x2][y2] - arr[x2][y1-1] - arr[x1-1][y2] + arr[x1-..
import java.util.*; import java.io.*; class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String[] tmp1 = br.readLine().split(" "); int N = Integer.parseInt(tmp1[0]); int M = Integer.parseInt(tmp1[1]); int sum = 0; int[] numSum = new int[M]; String[] tmp2 = br.readLine().split(" "); for (int i = 0; i <..
import sys input = sys.stdin.readline N,M= map(int, input().split()) num = list(map(int, input().split())) sum = 0 numRemainder = [0] * M for i in range(N): sum += num[i] numRemainder[sum % M] += 1 result = numRemainder[0] for i in numRemainder: result += i*(i-1)//2 print(result) 문제요약 다양한 구간의 합에서 M으로 나누어 떨어지는 곳을 구하라. 설명 우선 문제에서 출력이 어떻게 나오는지 알아보자. 먼저 백준의 입력 예시로 알아보면, 이 입력으로 각 인덱스별 시작 구간 합을 아래와 같다..