Park DJ
dj0998
Park DJ
전체 방문자
오늘
어제
  • 분류 전체보기 (363)
    • 백준 (363)

공지사항

인기 글

태그

  • 백준 7662
  • 백준 10709
  • 백준 8892
  • 백준 1531
  • 백준 15655
  • 백준 14582
  • 백준 1011
  • 백준 2467
  • 백준 3135
  • 자바
  • 백준 1064
  • 백준 3049
  • 백준 2343
  • 백준 2591
  • Java
  • 백준 12605
  • 백준 7567
  • 백준 6550
  • 백준 15312
  • 백준 16926
  • 백준 12871
  • 백준 1914
  • 백준 16194
  • 백준 1495
  • 백준 24039
  • 백준 4659
  • 백준 15961
  • 백준
  • 백준 2225
  • 백준 1747
hELLO · Designed By 정상우.
Park DJ

dj0998

백준 2531, 15961 회전초밥(Java)
백준

백준 2531, 15961 회전초밥(Java)

2023. 2. 23. 19:22

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

 

2531번: 회전 초밥

첫 번째 줄에는 회전 초밥 벨트에 놓인 접시의 수 N, 초밥의 가짓수 d, 연속해서 먹는 접시의 수 k, 쿠폰 번호 c가 각각 하나의 빈 칸을 사이에 두고 주어진다. 단, 2 ≤ N ≤ 30,000, 2 ≤ d ≤ 3,000, 2 ≤

www.acmicpc.net


 

 

Java 코드

 


import java.util.Scanner;

public class Main {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);

    int count = 0;
    int eat = 0;
    int n = sc.nextInt();
    int d = sc.nextInt();
    int k = sc.nextInt();
    int c = sc.nextInt();
    int[] arr = new int[n];
    int[] visit = new int[d + 1];
    
    for(int i = 0; i < n; i++) arr[i] = sc.nextInt();

    eat = 1;
    visit[c] = 1;

    for (int i = 0; i < k; i++) {
      if (visit[arr[i]] == 0) eat++;
      visit[arr[i]]++;
    }

    count = eat;

    for (int i = 1; i < n; i++) {
      visit[arr[i - 1]]--;
      if(visit[arr[i - 1]] == 0) eat--;
      if(visit[arr[(i + k - 1) % n]] == 0) eat++;
      visit[arr[(i + k - 1) % n]]++;
      
      count = Math.max(count, eat);
    }
        
    System.out.println(count);
  }
}

'백준' 카테고리의 다른 글

백준 12871 무한 문자열(Java)  (0) 2023.02.23
백준 24039 2021은 무엇이 특별할까(Java)  (0) 2023.02.23
백준 3135 라디오(Java)  (0) 2023.02.23
백준 14912 숫자 빈도수(Java)  (0) 2023.02.23
백준 1914 하노이 탑(Java)  (0) 2023.02.23
    '백준' 카테고리의 다른 글
    • 백준 12871 무한 문자열(Java)
    • 백준 24039 2021은 무엇이 특별할까(Java)
    • 백준 3135 라디오(Java)
    • 백준 14912 숫자 빈도수(Java)
    Park DJ
    Park DJ

    티스토리툴바