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 |