상세 컨텐츠

본문 제목

먼 카드 (JUNGOL 8565)

PS,CP

by 코딩생활 2026. 5. 16. 16:00

본문

https://jungol.co.kr/problem/8565?cursor=MjcsMSwxMw==


아이디어

idx[x]를 x중에서 먼저 나온것의 위치라고 생각합시다. 앞에서부터 보면서 idx[x]가 0이면 idx[x]에 현재 인덱스를 넣어주고, 아니면 (현재 인덱스-idx[x]-1)의 최댓값을 구해주면 됩니다.


소스코드

#include <iostream>
#include <algorithm>
#define ll long long
using namespace std;

int main()
{
    ios_base::sync_with_stdio(false); cin.tie(NULL);
    ll N,i,x,idx[2020]={0},res=0;

    cin>>N;
    for (i=1;i<=2*N;i++)
    {
        cin>>x;

        if (idx[x]==0) idx[x]=i;
        else res=max(res,i-idx[x]-1);
    }

    cout<<res;
}

관련글 더보기