Problem Solving/Two Pointer

    백준 20922: 겹치는 건 싫어 - 투 포인터

    https://www.acmicpc.net/problem/20922 20922번: 겹치는 건 싫어 홍대병에 걸린 도현이는 겹치는 것을 매우 싫어한다. 특히 수열에서 같은 원소가 여러 개 들어 있는 수열을 싫어한다. 도현이를 위해 같은 원소가 $K$개 이하로 들어 있는 최장 연속 부분 수열 www.acmicpc.net 이 문제는 투포인터를 통해 풀 수 있습니다. 포인터 두 개 (p1, p2)를 선언한 하고, p2를 옮겨가며 현재 p2가 가리키는 숫자가 총 몇 번 나왔는지 count 해줍니다. (dictionary 활용) 현재까지 나온 숫자 중 중복되는 것이 K가 넘을 때까지 p2를 옮겨주고, 넘게 되면 반복문에서 나와 한 칸 앞으로 p2를 되돌려줍니다. (초과되기 바로 직전에 p2가 위치함) 최대 길이를 ..

    백준 22862: 가장 긴 짝수 연속한 부분 수열 (large) - 투 포인터

    https://www.acmicpc.net/problem/22862 22862번: 가장 긴 짝수 연속한 부분 수열 (large) 수열 $S$에서 최대 $K$번 원소를 삭제한 수열에서 짝수로 이루어져 있는 연속한 부분 수열 중 가장 긴 길이를 출력한다. www.acmicpc.net 이 문제는 투포인터를 통해 풀 수 있습니다. 포인터 두 개 (p1, p2)를 선언한 후 p2를 홀수의 개수가 K가 넘을 때 까지 늘려줍니다. (p2의 위치를 옮기다가 리스트의 길이를 넘어가는 것도 처리) K개를 넘었다면 바로 한 칸 전으로 옮겨주어 K개를 넘기 바로 직전에 p2를 위치합니다. 그 후 p1과 p2사이에 있는 짝수의 개수를 계산합니다. (p2의 위치 - p1의 위치 + 1 - 홀수의 개수) 그러고 나서 p1의 값을 ..