본문 바로가기

Algorithm/Sweeping

(10)
(C++) - 백준(BOJ) 2170번 : 선 긋기 www.acmicpc.net/problem/2170 2170번: 선 긋기 첫째 줄에 선을 그은 횟수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 다음 N개의 줄에는 선을 그을 때 선택한 두 점의 위치 x, y(-1,000,000,000 ≤ x < y ≤ 1,000,000,000)가 주어진다. www.acmicpc.net sweeping문제였습니다. *c와 동기화를 끊지 않으면 시간초과가 나는데 이유를 잘 모르겠습니다. 아시는 분은 댓글 달아주시면 감사하겠습니다. ㅠㅠ 풀이방법 1. vector pair 자료구조인 point라는 변수에 x,y값을 n번만큼 입력받습니다. 2. first를 기준으로 오름차순 first가 같다면 second 기준으로 오름차순 정렬해줍니다. 그 후 startPoint는 가장..
(C++) - 백준(BOJ) 1644번 : 소수의 연속합 https://www.acmicpc.net/problem/1644 1644번: 소수의 연속합 첫째 줄에 자연수 N이 주어진다. (1 ≤ N ≤ 4,000,000) www.acmicpc.net two pointer로 푼 문제였습니다. 풀이방법 1. 400만까지의 소수를 구해 vector 자료형의 변수 prime에 저장합니다. 약 28만개 정도 됩니다. 2. two pointer를 시행합니다. 변수 l과 r을 pivot으로 하여 다음조건에 따라 누적합을 저장할 변수 sum에 적절히 더해가거나 빼면서 수행합니다. 2-1. 가장 처음 소수인 2부터 시작해서 누적합이 n을 초과한다면 l값을 빼주고 구간을 한칸 오른쪽으로 옮겨줍니다. 2-2. 만약 연속구간의 합이 n과 같다면 ans를 더해줍니다. 가장 처음 소수인..