본문 바로가기

누적 합17

[백준] 3673번 : 나눌 수 있는 부분 수열 (C++) 3673번 : 나눌 수 있는 부분 수열 문제) 양의 정수로 이루어진 수열이 주어졌을 때, 연속하는 부분 수열의 합이 d로 나누어 떨어지는 것의 개수를 구하는 프로그램을 작성하시오. 예를 들어, 아래와 같은 수열의 부분 수열 중 4로 나누어 떨어지는 것의 개수는 6개이다. 2, 1, 2, 1, 1, 2, 1, 2 다음과 같은 부분 수열은 합이 4로 나누어 떨어진다. 1~8, 2~4, 2~7, 3~5, 4~6, 5~7번째 입력 : 첫째 줄에 테스트 케이스의 개수 c가 주어진다. (1 ≤ c ≤ 200) 각 테스트 케이스는 두 줄로 이루어져 있다. 테스트 케이스의 첫째 줄에는 d(1 ≤ d ≤ 1,000,000)와 수열의 크기 n(1 ≤ n ≤ 50,000)이 주어진다. 다음 줄에는 수열의 원소가 주어진다. .. 2024. 1. 28.
[백준] 14846번 : 직사각형과 쿼리 (C++) 14846번 : 직사각형과 쿼리 문제) N행 N열로 이루어진 정사각형 행렬 A가 주어진다. 이때, 쿼리를 수행하는 프로그램을 작성하시오. x1 y1 x2 y2: 왼쪽 윗칸이 (x1, y1)이고, 오른쪽 아랫칸이 (x2, y2)인 부분 행렬에 포함되어 있는 서로 다른 정수의 개수를 출력한다. 입력 : 첫째 줄에 N (1 ≤ N ≤ 300)이 주어진다. 다음 N개의 줄에는 행렬의 정보가 주어지며, 각 줄은 N개의 수로 이루어져 있다. 행은 위에서부터 아래로, 열은 왼쪽부터 오른쪽으로 번호가 매겨져 있으며, 번호는 1번부터 시작한다. 행렬이 포함하고 있는 정수는 10보다 작거나 같은 자연수이다. 다음 줄에는 Q (1 ≤ Q ≤ 100,000)가 주어진다. 다음 Q개의 줄에는 쿼리의 정보 x1, y1, x2, .. 2024. 1. 28.
[백준] 2015번 : 수들의 합 4 (C++) 2015번 : 수들의 합 4 문제) A[1], A[2], ..., A[N]의 N개의 정수가 저장되어 있는 배열이 있다. 이 배열 A의 부분합이란 1 ≤ i ≤ j ≤ N인 정수 i와 j에 대해 A[i]부터 A[j]까지의 합을 말한다. N과 A[1], A[2], ..., A[N]이 주어졌을 때, 이러한 N×(N+1)/2개의 부분합 중 합이 K인 것이 몇 개나 있는지를 구하는 프로그램을 작성하시오. 입력 : 첫째 줄에 정수 N과 K가 주어진다. (1 ≤ N ≤ 200,000, |K| ≤ 2,000,000,000) N과 K 사이에는 빈칸이 하나 있다. 둘째 줄에는 배열 A를 이루는 N개의 정수가 빈 칸을 사이에 두고 A[1], A[2], ..., A[N]의 순서로 주어진다. 주어지는 정수의 절댓값은 10,00.. 2024. 1. 28.
[백준] 24956번 : 나는 정말 휘파람을 못 불어 (C++) 24956번 : 나는 정말 휘파람을 못 불어 문제) 휘파람을 불지 못하는 시루는 휘파람을 불기 위해 수없이 많이 시도했지만 항상 실패한다. 시루의 휘파람 연습을 도와주고 있는 루시는, 시루가 휘파람과 비슷한 소리를 낼 때마다 사탕을 주기로 했다. 시루의 입에서 나온 소리는 대문자로 구성된 문자열 S로 나타낼 수 있다. 루시는 문자열 S에서 휘파람과 비슷한 소리, 즉 '유사 휘파람 문자열'의 개수를 구해야 한다. '유사 휘파람 문자열'은 다음과 같이 정의한다. WHEE는 '유사 휘파람 문자열'이다. '유사 휘파람 문자열' 뒤에 E를 붙인 것 또한 '유사 휘파람 문자열'이다. '유사 휘파람 문자열'은 문자열 S 상에서 연속하지 않아도 된다. 즉, S에서 '유사 휘파람 문자열'인 부분 수열(subsequenc.. 2024. 1. 28.