two pointer 3

[백준 22862] 가장 긴 짝수 연속한 부분 수열 (large) [Java]

문제길이가 𝑁인 수열 𝑆가 있다. 수열 𝑆는 1 이상인 정수로 이루어져 있다.수열 𝑆에서 원하는 위치에 있는 수를 골라 최대 𝐾번 삭제를 할 수 있다.수열 𝑆에서 최대 𝐾번 원소를 삭제한 수열에서 짝수로 이루어져 있는 연속한 부분 수열 중 가장 긴 길이를 구해보자.입력수열 𝑆의 길이 𝑁와 삭제할 수 있는 최대 횟수인 𝐾가 공백으로 구분되어 주어진다.두 번째 줄에는 수열 𝑆를 구성하고 있는 𝑁개의 수가 공백으로 구분되어 주어진다.출력수열 𝑆에서 최대 𝐾번 원소를 삭제한 수열에서 짝수로 이루어져 있는 연속한 부분 수열 중 가장 긴 길이를 출력한다.풀이최대 K개의 홀수를 포함한 구간에서 짝수로만 이루어진 부분수열의 가장 긴 길이를 구하면 되는 문제다.최대 K개의 홀수만큼 세어주자. 구..

[백준 13144] List of Unique Numbers [Java]

문제길이가 N인 수열이 주어질 때, 수열에서 연속한 1개 이상의 수를 뽑았을 때 같은 수가 여러 번 등장하지 않는 경우의 수를 구하는 프로그램을 작성하여라.입력첫 번째 줄에는 수열의 길이 N이 주어진다. (1 ≤ N ≤ 100,000)두 번째 줄에는 수열을 나타내는 N개의 정수가 주어진다. 수열에 나타나는 수는 모두 1 이상 100,000 이하이다.출력조건을 만족하는 경우의 수를 출력한다.풀이중복되지 않는 요소로 이루어진 부분 수열의 갯수를 찾는 문제다.start와 end는 0부터 시작하며, end는 부분수열의 끝에 위치시켜주자.end번째 요소가 부분 수열이 가진 요소가 아닐 때 까지( visited[arr[end]] ) 방문 표시를하고 end를 늘려주자. 부분 수열이 가진 요소가 중복해서 나왔다면 탐색..

[백준 03273] 두 수의 합[Python]

문제 n개의 서로 다른 양의 정수 a1, a2, ..., an으로 이루어진 수열이 있다. ai의 값은 1보다 크거나 같고, 1000000보다 작거나 같은 자연수이다. 자연수 x가 주어졌을 때, ai + aj = x (1 ≤ i < j ≤ n)을 만족하는 (ai, aj)쌍의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 수열의 크기 n이 주어진다. 다음 줄에는 수열에 포함되는 수가 주어진다. 셋째 줄에는 x가 주어진다. (1 ≤ n ≤ 100000, 1 ≤ x ≤ 2000000) 출력 문제의 조건을 만족하는 쌍의 개수를 출력한다. 3273번: 두 수의 합 n개의 서로 다른 양의 정수 a1, a2, ..., an으로 이루어진 수열이 있다. ai의 값은 1보다 크거나 같고, 1000000보다 작거나 같은..