728x90
반응형

투 포인터 3

[C/C++] 백준 - 20922번 : 겹치는 건 싫어

https://www.acmicpc.net/problem/20922 20922번: 겹치는 건 싫어 홍대병에 걸린 도현이는 겹치는 것을 매우 싫어한다. 특히 수열에서 같은 원소가 여러 개 들어 있는 수열을 싫어한다. 도현이를 위해 같은 원소가 $K$개 이하로 들어 있는 최장 연속 부분 수열 www.acmicpc.net 투포인터를 이용해서 할 수 있는 문제이다. 1. 맨 처음에는 시작점과 끝점을 둘다 idx 0으로 둔다 (왼쪽 포인터를 st, 오른쪽 포인터를 en이라 칭하겠음) 2. 조건에 맞게 en이 N보다 작으면서 아직 K개 이하로 등장했다면 오른쪽 포인터를 오른쪽으로 옮겨준다. 이걸 while반복문으로 조건에 걸릴 때까지 늘려준다. while(en < N && visited[v[en]] < K) { v..

BOJ/투포인터 2021.08.26

[C/C++] 백준 - 1806번 : 부분합

https://www.acmicpc.net/problem/1806 1806번: 부분합 첫째 줄에 N (10 ≤ N < 100,000)과 S (0 < S ≤ 100,000,000)가 주어진다. 둘째 줄에는 수열이 주어진다. 수열의 각 원소는 공백으로 구분되어져 있으며, 10,000이하의 자연수이다. www.acmicpc.net 바로 전에 올렸었던 문제와 거의 동일한 문제이다. 투포인터로 사용하면 O(n)으로 해결이 가능하다. #include #include #include #include #include #include #include #include #include #include #define CUNLINK ios::sync_with_stdio(false), cin.tie(0), cout.tie(0) ..

BOJ/투포인터 2021.08.24
728x90
반응형