[백준] 2876 그래픽스 퀴즈 - Java
문제를 잘 이해해야 한다.
두 책상을 고르고, 두 책상을 포함해서 그 사이에 있는 모든 책상에 대해서 퀴즈를 낸다.
이 때 책상 당 한명씩만 퀴즈를 내고, 퀴즈를 맞추는 학생들의 성적은 동일해야 한다.
즉, 같은 성적으로 연속되는 학생 수의 최댓값을 구하면 된다.
1 ~ 5 까지의 성적이 있으니 모두 구하고 최댓값을 출력하자.
import java.util.*;
import java.io.*;
import java.math.*;
public class Main {
static StringBuilder sb = new StringBuilder();
static int[] dp;
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
Desk[] arr = new Desk[N];
HashMap<Integer, Integer> hm = new HashMap<>();
for(int i=1; i<6; i++){
hm.put(i, 0);
}
for(int i=0; i<N; i++){
StringTokenizer st = new StringTokenizer(br.readLine());
arr[i] = new Desk(Integer.parseInt(st.nextToken()), Integer.parseInt(st.nextToken()));
}
for(int target = 1; target < 6; target++){
int cnt = 0;
for(int i=0; i<N; i++){
int A = arr[i].A;
int B = arr[i].B;
if((A == target || B == target)){
cnt++;
int tmp = hm.getOrDefault(target, 0);
int max = Math.max(tmp, cnt);
hm.put(target, max);
}
if(!(A == target || B == target)){
cnt = 0;
}
}
}
ArrayList<Student> list = new ArrayList<>();
for(int i=1; i<6; i++){
list.add(new Student(hm.get(i), i));
}
Collections.sort(list);
System.out.println(list.get(0).num + " " + list.get(0).grade);
// System.out.println("bg");
// for(Student k : list){
// System.out.println(k.grade + " " + k.num);
// }
}
}
class Student implements Comparable<Student>{
int num, grade;
Student(int num, int grade){
this.num = num;
this.grade = grade;
}
public int compareTo(Student o2){
if(num > o2.num){
return -1;
}else if(num < o2.num){
return 1;
}else{
if(grade > o2.grade){
return 1;
}else{
return -1;
}
}
}
}
class Desk{
int A,B;
Desk(int A, int B){
this.A = A;
this.B = B;
}
}
반응형
'Algorithm > Baekjoon' 카테고리의 다른 글
[백준] 2228 구간 나누기 - Java (0) | 2022.09.03 |
---|---|
[백준] 20152 Game Addiction - Java (1) | 2022.08.28 |
[백준] 21317 징검다리 건너기 - Java (0) | 2022.08.26 |
[백준] 1106 호텔 - Java (0) | 2022.08.25 |
[백준] 9489 사촌 - Java (0) | 2022.08.24 |
댓글
이 글 공유하기
다른 글
-
[백준] 2228 구간 나누기 - Java
[백준] 2228 구간 나누기 - Java
2022.09.03 -
[백준] 20152 Game Addiction - Java
[백준] 20152 Game Addiction - Java
2022.08.28 -
[백준] 21317 징검다리 건너기 - Java
[백준] 21317 징검다리 건너기 - Java
2022.08.26 -
[백준] 1106 호텔 - Java
[백준] 1106 호텔 - Java
2022.08.25