이 영역을 누르면 첫 페이지로 이동
천천히 꾸준히 조용히 블로그의 첫 페이지로 이동

천천히 꾸준히 조용히

페이지 맨 위로 올라가기

천천히 꾸준히 조용히

천천히 꾸준히 조용히.. i3months 블로그

[백준] 15565 귀여운 라이언 - Java

  • 2022.05.08 18:55
  • Algorithm/Baekjoon
반응형

 

 

 

투 포인터를 사용해서 풀 수 있는 문제이다.

 

정형화 된 방법을 익히고 언제 어디서든 사용할 수 있도록 하자.

 

 

1. 배열 인덱스의 시작은 1부터 시작하도록 설정하자.

 

2. L과 R을 조작할 때 L은 1부터, R은 0부터 시작하고 while로 R을 조작할 때 R을 1증가시키면서 시작하자.

 

3. 항상 문제를 잘 읽자.

 

 

배열 인덱스의 시작을 1부터 시작하도록 설정하는거는 단순히 편의를 위해서이다.

이분 탐색을 진행할 때는 mid값을 제대로 구하기 위해 1부터 설정했었는데.. 이게 손에 익어서 계속 쓰게 됐다.

 

위의 형식은 문제 조건에 따라서 얼마든지 바뀔 수 있지만, 그래도 풀이의 틀을 잡아놓으면 접근하기 편한 것 같다.

 

 

import java.util.*;
import java.io.*;

public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		StringTokenizer st = new StringTokenizer(br.readLine());

		int N = Integer.parseInt(st.nextToken());
		int K = Integer.parseInt(st.nextToken());

		int[] arr = new int[N + 1];

		st = new StringTokenizer(br.readLine());

		for (int i = 1; i < N + 1; i++) {
			arr[i] = Integer.parseInt(st.nextToken());
		}

		int R = 0;
		int ans = -1;		
		int sum = 0;
		for(int L = 1; L<N+1; L++){
					
			while(R < N && sum < K){
				R++;
				if(arr[R] == 1){
					sum++;
				}
			}

			if(sum == K){
				if(ans == -1){
					ans = R - L + 1;
				}
				ans = Math.min(ans, R - L + 1);
			}

			if(arr[L] == 1){
				sum--;
			}

		}

		System.out.println(ans);
		

	}
}
반응형

'Algorithm > Baekjoon' 카테고리의 다른 글

[백준] 1394 암호 - Java  (0) 2022.05.09
[백준] 1644 소수의 연속합 - Java  (0) 2022.05.09
[백준] 2559 수열- Java  (0) 2022.05.08
[백준] 2003 수들의 합2- Java  (1) 2022.05.08
[백준] 16472 고냥이 - Java  (0) 2022.05.08

댓글

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

  • [백준] 1394 암호 - Java

    [백준] 1394 암호 - Java

    2022.05.09
  • [백준] 1644 소수의 연속합 - Java

    [백준] 1644 소수의 연속합 - Java

    2022.05.09
  • [백준] 2559 수열- Java

    [백준] 2559 수열- Java

    2022.05.08
  • [백준] 2003 수들의 합2- Java

    [백준] 2003 수들의 합2- Java

    2022.05.08
다른 글 더 둘러보기

정보

천천히 꾸준히 조용히 블로그의 첫 페이지로 이동

천천히 꾸준히 조용히

  • 천천히 꾸준히 조용히의 첫 페이지로 이동

검색

방문자

  • 전체 방문자
  • 오늘
  • 어제

카테고리

  • 분류 전체보기 (674) N
    • Algorithm (205)
      • Data Structure (5)
      • Theory && Tip (33)
      • Baekjoon (166)
      • ALGOSPOT (1)
    • Spring (123)
      • Spring (28)
      • Spring Web MVC (20)
      • Spring Database (14)
      • Spring Boot (6)
      • Spring 3.1 (11)
      • Spring Batch (6)
      • Spring Security (16)
      • JPA (12)
      • Spring Data JPA (5)
      • QueryDSL (4)
      • eGovFramework (1)
    • Programming Language (74)
      • C (25)
      • C++ (12)
      • Java (19)
      • JavaScript (15)
      • Python (1)
      • PHP (2)
    • Computer Science (142)
      • Machine Learning (38)
      • Operating System (18)
      • Computer Network (28)
      • System Programming (22)
      • Universial Programming Lang.. (8)
      • Computer Architecture (4)
      • Compiler Design (11)
      • Computer Security (13)
    • Database (21)
      • Database (7)
      • MySQL (3)
      • Oracle (3)
      • Redis (5)
      • Elasticsearch (3)
    • DevOps (20)
      • Docker && Kubernetes (8)
      • Jenkins (4)
      • Amazon Web Service (8)
    • Mobile (28)
      • Android (21)
      • Flutter (7)
    • 💡 솔루션 (17) N
    • 👥 모각코 (8)
    • 💬 기록 (6)
    • 📚 공부 (5)
    • -------------- (25)

최근 글

나의 외부 링크

메뉴

  • 홈
반응형

정보

i3months의 천천히 꾸준히 조용히

천천히 꾸준히 조용히

i3months

블로그 구독하기

  • 구독하기
  • RSS 피드

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
Powered by Tistory / Kakao. Copyright © i3months.

티스토리툴바