투 포인터(9)
-
[Baekjoon] 1806번: 부분합
https://www.acmicpc.net/problem/1806 1806번: 부분합 첫째 줄에 N (10 ≤ N < 100,000)과 S (0 < S ≤ 100,000,000)가 주어진다. 둘째 줄에는 수열이 주어진다. 수열의 각 원소는 공백으로 구분되어져 있으며, 10,000이하의 자연수이다. www.acmicpc.net 문제 설명 10,000 이하 자연수로 이루어진 길이 N의 수열이 주어진다. 이 수열에서 연속된 수들의 부분합 중에 그 합이 S 이상이 되는 것 중 가장 짧은 것의 길이를 구하는 프로그램을 작성해야 한다. 만약 합이 없다면 0을 출력한다. 풀이 방법 - 투 포인터 이 문제는 투 포인터를 활용하여 해결할 수 있다. 예제 입력을 가지고 과정을 살펴보자. N = 수열의 길이이다. S = 비..
2023.03.28 -
[Baekjoon] 11728번: 배열 합치기
https://www.acmicpc.net/problem/11728 11728번: 배열 합치기 첫째 줄에 배열 A의 크기 N, 배열 B의 크기 M이 주어진다. (1 ≤ N, M ≤ 1,000,000) 둘째 줄에는 배열 A의 내용이, 셋째 줄에는 배열 B의 내용이 주어진다. 배열에 들어있는 수는 절댓값이 109보다 작거 www.acmicpc.net 문제 설명 정렬된 두 배열이 주어진다. 두 배열을 합친 다음 정렬해서 출력하는 프로그램을 작성하면 된다. 풀이 방법 투 포인터 기초 문제이다. 예제 입력 3을 그림을 통해 보자. 이해를 돕기 위해 A 배열에 10을 추가했다. A: 첫 번째로 주어진 배열이다. B: 두 번째로 주어진 배열이다. ans: 출력할 정답을 저장해놓는 배열이다. 첫째 줄에 입력받은 N과 ..
2023.03.26 -
[Baekjoon] 2003번: 수들의 합 2
https://www.acmicpc.net/problem/2003 2003번: 수들의 합 2 첫째 줄에 N(1 ≤ N ≤ 10,000), M(1 ≤ M ≤ 300,000,000)이 주어진다. 다음 줄에는 A[1], A[2], …, A[N]이 공백으로 분리되어 주어진다. 각각의 A[x]는 30,000을 넘지 않는 자연수이다. www.acmicpc.net 문제 설명 N개의 수로 된 수열이 주어진다. 이 수열의 i번째 수부터 j번째 수까지의 합이 M이 되는 경우의 수를 구하는 프로그램을 작성해야 한다. 예제 2로 설명하면 다음과 같다. 인덱스가 0인 1부터 시작해보자. i = 0 1부터 순서대로 더해나간다. 그러다 1 + 2 + 3 = 6이므로 이 경우는 안 된다. i = 1 2부터 순서대로 더해나간다. 그러..
2023.03.24