본문 바로가기

투포인터알고리즘3

[백준문제풀이] 7453 합이 0인 네 정수 풀이일시 : 2020-12-26 문제 : 정수로 이루어진 크기가 같은 배열 A, B, C, D가 있다. A[a], B[b], C[c], D[d]의 합이 0인 (a, b, c, d) 쌍의 개수를 구하는 프로그램을 작성하시오. 입력 : 첫째 줄에 배열의 크기 n (1 ≤ n ≤ 4000)이 주어진다. 다음 n개 줄에는 A, B, C, D에 포함되는 정수가 공백으로 구분되어져서 주어진다. 배열에 들어있는 정수의 절댓값은 최대 228이다. ex) 6 -45 22 42 -16 -41 -27 56 30 -36 53 -37 77 -36 30 -75 -46 26 -38 -10 62 -32 -54 -6 45 출력 : 합이 0이 되는 쌍의 개수를 출력한다. 풀이 : 투포인터 알고리즘으로 풀이할 수 있다. 입력을 arr[j.. 2021. 1. 4.
[백준문제풀이] 1806 부분합 풀이일시 : 2020-12-24 ​ 문제 : 10,000 이하의 자연수로 이루어진 길이 N짜리 수열이 주어진다. 이 수열에서 연속된 수들의 부분합 중에 그 합이 S 이상이 되는 것 중, 가장 짧은 것의 길이를 구하는 프로그램을 작성하시오. ​ ​ 입력 : 첫째 줄에 N (10 ≤ N < 100,000)과 S (0 < S ≤ 100,000,000)가 주어진다. 둘째 줄에는 수열이 주어진다. 수열의 각 원소는 공백으로 구분되어져 있으며, 10,000이하의 자연수이다. ex) 10 15 5 1 3 5 10 7 4 9 2 8 ​ ​ 출력 : 첫째 줄에 구하고자 하는 최소의 길이를 출력한다. 만일 그러한 합을 만드는 것이 불가능하다면 0을 출력하면 된다. ex) 2 ​ ​ 풀이 : ​ 1. 일반 BP로 풀기 (시.. 2021. 1. 3.
[백준문제풀이] 2003 수들의 합 2 풀이일시 : 2020-12-23 ​ 문제 : N개의 수로 된 수열 A[1], A[2], …, A[N] 이 있다. 이 수열의 i번째 수부터 j번째 수까지의 합 A[i] + A[i+1] + … + A[j-1] + A[j]가 M이 되는 경우의 수를 구하는 프로그램을 작성하시오. ​ ​ 입력 : 첫째 줄에 N(1 ≤ N ≤ 10,000), M(1 ≤ M ≤ 300,000,000)이 주어진다. 다음 줄에는 A[1], A[2], …, A[N]이 공백으로 분리되어 주어진다. 각각의 A[x]는 30,000을 넘지 않는 자연수이다. ex1) 4 2 1 1 1 1 ex2) 3 300 100 200 3 ​ ​ 출력 : 첫째 줄에 경우의 수를 출력한다. ex1) 3 ex2) 1 ​ ​ 풀이 : 1. BP로 풀이하는방법 ​ 단.. 2021. 1. 3.
반응형