[BAEKJOON] 20922번 겹치는 건 싫어

2024. 3. 21. 15:04·Algorithm/투포인터

https://www.acmicpc.net/problem/20922

 

20922번: 겹치는 건 싫어

홍대병에 걸린 도현이는 겹치는 것을 매우 싫어한다. 특히 수열에서 같은 원소가 여러 개 들어 있는 수열을 싫어한다. 도현이를 위해 같은 원소가 $K$개 이하로 들어 있는 최장 연속 부분 수열

www.acmicpc.net

문제조건
  1. 같은 원소 k개 이하
  2. 최장 연속 부분 수열의 길이

처음보는 문제유형이라 많이 당황했다,,

dp, LCS 등등 알고리즘을 고민해봤지만, 도저히 풀리는 그림이 나오지 않았다.

따라서 투 포인터라는 접근방식이 필요했다.

 

https://khu98.tistory.com/187

 

[백준OJ] 20922번 겹치는 건 싫어

https://www.acmicpc.net/problem/20922 20922번: 겹치는 건 싫어 홍대병에 걸린 도현이는 겹치는 것을 매우 싫어한다. 특히 수열에서 같은 원소가 여러 개 들어 있는 수열을 싫어한다. 도현이를 위해 같은 원

khu98.tistory.com

이 글이 이해하는데 정말 도움을 많이 줬다. 감사합니다 ㅎㅎ

#include <iostream>
#include <vector>
using namespace std;

int n, k, cnt[100001];
vector<int> v;

int main(){
	cin >> n >> k;
	for (int i = 0; i < n; i++) {
		int a;
		cin >> a;
		v.push_back(a);
	}
	int s = 0, e = 0,res = 0;
	while (s < n) {
		//정수가 k개 이하일때
		if (cnt[v[s]] != k) {
			cnt[v[s]]++;
			s++;
		}
		//정수가 k개이면 e포인터를 다음으로 이동 후, e포인터가 가리키던 정수 개수 -1
		else {
			cnt[v[e]]--;
			e++;
		}
		//k개 이하를 유지하며 최댓값 계속갱신
		res = max(res, s - e);
	}
	cout << res;
}

 

'Algorithm > 투포인터' 카테고리의 다른 글

[BAEKJOON] 20437번 문자열 게임2  (1) 2024.05.21
[BAEKJOON] 1522번 문자열 교환  (0) 2024.05.20
[BAEKJOON] 2531번 회전초밥  (0) 2024.03.21
'Algorithm/투포인터' 카테고리의 다른 글
  • [BAEKJOON] 20437번 문자열 게임2
  • [BAEKJOON] 1522번 문자열 교환
  • [BAEKJOON] 2531번 회전초밥
Ls._.Rain
Ls._.Rain
안되면 될때까지 삽질했던 기록
  • Ls._.Rain
    Ls{Diary}
    Ls._.Rain
  • 전체
    오늘
    어제
    • 분류 전체보기 (136)
      • Github (2)
      • Spring (51)
        • Batch Programming (13)
        • 결제 (4)
        • 대용량 트래픽 (32)
        • OpenAI (0)
        • Security (0)
        • WebSocket (0)
        • JPA (1)
      • Algorithm (67)
        • DFS (6)
        • BFS (6)
        • Dynamic Programming (10)
        • Brute Force (4)
        • Binary Search (6)
        • 구현, 시뮬레이션 (15)
        • Stack (1)
        • Greedy (4)
        • Priority_Queue (2)
        • Back Tracking (3)
        • Geometry (2)
        • SCC (1)
        • 투포인터 (4)
        • 최대유량 (1)
        • 정렬 (1)
      • OS (0)
      • DevOps (15)
        • AWS (11)
        • Docker (4)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • hELLO· Designed By정상우.v4.10.0
Ls._.Rain
[BAEKJOON] 20922번 겹치는 건 싫어
상단으로

티스토리툴바