문제
https://www.acmicpc.net/problem/5883
문제 접근
- 특정 용량을 원하는 사람을 줄에서 제거했을 때 같은 용량을 원하는 연속된 사람의 길이의 최대값을 구하는 문제
- 모든 경우의 수를 탐색해야 한다. 예를 들어 0 0 1 2 0 0 3 0 3 3 이라는 입력이 있을 때 제거하는 경우의 수는 각각 0, 1, 2, 3이다. 이 모두를 탐색하면 된다.
- 즉 종류를 한번 카운팅해야 한다는 것이며 이는 Set에다 저장하여 확인할 수 있도록 하였다.
정답 코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
public class Main {
static int ans = 1;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
int[] line = new int[N];
Set<Integer> capacity = new HashSet<>();
for (int i = 0; i < N; i++){
line[i] = Integer.parseInt(br.readLine());
capacity.add(line[i]);
}
for (var removeElement: capacity){
solve(removeElement, line);
}
System.out.println(ans);
}
public static void solve(int element, int[] line){
int cnt = 1;
int pre = line[0];
for (int i = 1; i < line.length; i++){
if (line[i] == element) continue;
if (pre != line[i]){
cnt = 1;
} else{
cnt++;
ans = Math.max(ans, cnt);
}
pre = line[i];
}
}
}
'Algorithm > BruteForce' 카테고리의 다른 글
[백준][BOJ 2422] - Ice Cream (1) | 2023.10.04 |
---|---|
[백준][BOJ 1251] - 단어 나누기 (0) | 2023.10.04 |
[백준][BOJ 1969] - DNA (1) | 2023.10.02 |
[백준][BOJ 4134] - 다음 소수 (0) | 2023.10.02 |
[백준][BOJ 2210] - 숫자판 점프 (0) | 2023.10.02 |