Notice
Recent Posts
Recent Comments
Link
«   2025/03   »
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 31
Tags
more
Archives
Today
Total
관리 메뉴

끄적끄적

백준 [15565] 귀여운 라이언 - 투포인터 본문

코테준비

백준 [15565] 귀여운 라이언 - 투포인터

alstj_성공 2021. 7. 14. 18:17

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

 

귀여운 라이언 

 

1 초 256 MB 1399 567 434 41.452%

문제

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

입력

첫 줄에 N과 K가 주어진다. (1 ≤ K ≤ N ≤ 106)

둘째 줄에 N개의 인형의 정보가 주어진다. (1 또는 2)

출력

K개 이상의 라이언 인형을 포함하는 가장 작은 연속된 인형들의 집합의 크기를 출력한다. 그런 집합이 없다면 -1을 출력한다.

예제 입력 1 

10 3

1 2 2 2 1 2 1 2 2 1

예제 출력 1 

6

 

 

* 2003번과 조건 처리 부분이 비슷하다.

 

* for(auto &i : v) { cin>>i;} -> i가 자동적으로 증가하며 각 v index에 접근하여 입력된 i 값으로 변경

  for(auto i : v) {cout<<i;} -> 각 v 인덱스에 저장되어있는 값을 출력

  &의 유무 차이 : &가 있으면 값 변경 가능

 

* ptr1==ptr2와 sum<K if문 내용이 같지만 같이 쓰면 안되는 이유

  ptr2==N-1이지만 sum<K인 경우 ptr2==N-1일 때 ptr2를 증가시켜주게 되므로 예외 처리 불가.

  그래서 ptr2==N-1인 경우를 먼저 예외 처리 해줘야 하므로 각각 따로 써야 함.