[백준 11986] 나머지합 구하기 - JAVA
문제N개의 수 A1, A2, ..., An이 주어졌을 떄 연속된 부분의 합이 M으로 나누어 떨어지는 구간의 개수를 구하는 프로그램을 작성하시오.즉, Ai + ... +Aj(i첫째 줄에 N과 M이 주어진다. (1 ≤ N ≤ 10M(10⁶), 2 ≤ M ≤ 10k(10³)). 둘째 줄에 N개의 수 A1, A2, ..., AN이 주어진다. (0 ≤ Ai ≤ 10G(10⁹) 문제 분석1. N의 최대값은 10^6, 모든 구간의 합을 구하면 자료형의 범위를 넘어설 수 있고, 0.5초 컷 하기엔 너무 오래걸린다.2. (A+B)%C == ((A%C) + (B%C))%C 3. 구간합 배열 공식을 이용해 (i+1, j) 구간합 구하기. S[j] - S[i]4. S[j] % M 과 S[i] % M의 값이 같다면 (S[j]..
2025. 12. 31.
[백준 11660] 구간합 구하기 2 (표) - JAVA
문제NxN개의 수가 NxN 크기의 표에 채워져 있다. 표 안의 수 중 (X1, Y1)에서 (X2, Y2)까지의 합을 구한다. X는 행, Y는 열이다. 예를 들어 N=4이고, 표가 아래와 같을 때 (2,2)에서 (3,4)까지의 합은 3+4+5+4+5+6)= 27이다.1번째 줄에 표의 크기 N과 합을 구해야 하는 횟수 M이 주어진다(12번째 줄부터 N개의 줄에는 표에 채워져 있는 수가 1행부터 차례대로 주어진다. 다음 M개의 줄에는 4개의 정수 X1,Y1,X2,Y2가 주어지며 (X1,Y1)에서 (X2,Y2)의 합을 구해 출력한다. 표에 채워져 있는 수는 1,000보다 작거나 같은 자연수다(X11234234534564567 문제 분석1. 수의 개수와 합을 구해야하는 횟수는 최대 100,000 -> 구간마다 합..
2025. 12. 29.
[코테연습] 점찍기
문제좌표평면을 좋아하는 진수는 x축과 y축이 직교하는 2차원 좌표평면에 점을 찍으면서 놀고 있습니다.진수는 두 양의 정수 k, d가 주어질 때 다음과 같이 점을 찍으려 합니다.원점(0, 0)으로부터 x축 방향으로 a*k(a = 0, 1, 2, 3 ...),y축 방향으로 b*k(b = 0, 1, 2, 3 ...)만큼 떨어진 위치에 점을 찍습니다.원점과 거리가 d를 넘는 위치에는 점을 찍지 않습니다.예를 들어, k가 2, d가 4인 경우에는 (0, 0), (0, 2), (0, 4), (2, 0), (2, 2), (4, 0) 위치에 점을 찍어 총 6개의 점을 찍습니다.정수 k와 원점과의 거리를 나타내는 정수 d가 주어졌을 때, 점이 총 몇 개 찍히는지 return 하는 solution 함수를 완성하세요.입출력..
2025. 7. 7.