목록두 포인터 (2)
알고리즘 모음(C++)
문제 링크입니다. https://www.acmicpc.net/problem/1806 1806번: 부분합 첫째 줄에 N (10 ≤ N < 100,000)과 S (0 < S ≤ 100,000,000)가 주어진다. 둘째 줄에는 수열이 주어진다. 수열의 각 원소는 공백으로 구분되어져 있으며, 10,000이하의 자연수이다. www.acmicpc.net 기본적인 두 포인터 알고리즘 문제였습니다. S이상 합을 가질 수 있는 수열의 길이를 구하는 문제였습니다. low 와 high를 정한뒤, low ~ high까지 vector의 합을 구한 다음, S와 비교한 뒤, 값에 따라 low 와 high를 증가하면 됩니다. 자세한 것은 코드를 참고해주세요! #define _CRT_SECURE_NO_WARNINGS #include ..
문제 링크입니다. https://www.acmicpc.net/problem/1644 1644번: 소수의 연속합 첫째 줄에 자연수 N이 주어진다. (1 ≤ N ≤ 4,000,000) www.acmicpc.net 에라토스테네스의 체 + 두 포인터가 합쳐진 문제였습니다. 1 ~ N까지의 수에서 소수를 판정한 뒤, 해당 소수의 값들로 N을 만들 수 있는지 확인하면 되는 문제였습니다. N의 범위가 최대 4,000,000 이여서 N*N크기의 2중 for문을 돌린다면 시간 초과가 생길 수 있습니다. 따라서 에라토스테네스의 체를 사용해주시면 됩니다. 소수 판정이 끝났다면 소수가 있을 때와 소수가 없을 때로 나누어서 계산해야합니다.(소수가 없을 때를 고려하지 않아 계속 런타임 에러가 생겼습니다..) 소수가 없을 때에는 ..