티스토리 뷰

반응형

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

 

15565번: 귀여운 라이언

꿀귀 라이언 인형과, 마찬가지로 꿀귀인 어피치 인형이 N개 일렬로 놓여 있다. 라이언 인형은 1, 어피치 인형은 2로 표현하자. 라이언 인형이 K개 이상 있는 가장 작은 연속된 인형들의 집합의

www.acmicpc.net


⊙ 문제

⊙ 입력

⊙ 출력

⊙ 예제 입출력

⊙ 알고리즘 분류

  • 두 포인터

 


 

⊙ 문제 접근 과정

 

문제를 보자마자 든 생각은 인덱스를 이용하면 편할 것 같았다.

그래서 인덱스 값을 이용하여 문제를 풀었다.

 

코드의 주석을 통해 설명을 달아놨다.


 

⊙ 문제 풀이

 

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int N,K;
vector<int> v;

int main() {
    cin >> N >> K; // N, K 입력받기

    for(int i=0;i<N;i++) { //라이언이라면 인덱스 저장
        int x;
        cin >> x;
        if(x==1) v.push_back(i);
    }

    int result=987654321;

    if(v.size()<K) cout << "-1"; //라이언이 K보다 적으면 -1 출력
    else {
        for(int i=0;i<=v.size()-K;i++) 
            result=min(result,v[i+K-1]-v[i]+1);
        cout << result; // 아니라면 가장 작은 인덱스 차이 출력
    }
}

⊙ 결과

 


⊙ 마무리

 

 

NONE

 

좋아요는 로그인하지 않아도 누를 수 있습니다!

728x90
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함