문제(출처: https://www.acmicpc.net/problem/9872)
< Record Keeping >
문제 풀이
각 그룹을 저장하는 ArrayList와 그룹이 등장한 횟수를 세는 ArrayList를 활용한다.
my solution (Java)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Collections;
import java.util.StringTokenizer;
public class _9872_ { // Record Keeping
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
int N = Integer.parseInt(bf.readLine());
ArrayList<ArrayList<String>> list = new ArrayList<>();
ArrayList<Integer> cnt = new ArrayList<>();
for (int i = 0; i < N; i++) {
st = new StringTokenizer(bf.readLine());
ArrayList<String> temp = new ArrayList<>();
for (int j = 0; j < 3; j++) {
temp.add(st.nextToken());
}
Collections.sort(temp);
if (list.size() == 0) {
list.add(temp);
cnt.add(1);
continue;
}
boolean flag = false;
for (int j = 0; j < list.size(); j++) {
flag = false;
for (int k = 0; k < 3; k++) {
if (!list.get(j).get(k).equals(temp.get(k))) {
flag = true;
break;
}
}
if (!flag) {
cnt.set(j, cnt.get(j) + 1);
break;
}
}
if (flag) {
list.add(temp);
cnt.add(1);
}
}
Collections.sort(cnt, Collections.reverseOrder());
System.out.println(cnt.get(0));
}
}
변수)
N : 입력 크기
list : 그룹을 저장하는 ArrayList
cnt : 그룹이 등장하는 횟수를 저장하는 ArrayList
temp : 각 그룹
flag : 그룹 등장 여부
입력 크기를 입력받는다. 입력 크기만큼 그룹을 입력받아 정렬한다. 각 그룹이 이미 존재하는 그룹이라면 cnt를 증가하고 새로운 그룹이라면 list와 cnt를 추가한다. 최종 cnt를 내림차순으로 정렬한 후 0번째 값을 출력한다.
'🌞Algorithm > 🔥Baekjoon' 카테고리의 다른 글
[Baekjoon] 9414_프로그래밍 대회 전용 부지 (0) | 2024.10.23 |
---|---|
[Baekjoon] 5939_Race Results (0) | 2024.10.22 |
[Baekjoon] 8598_Zając (0) | 2024.10.18 |
[Baekjoon] 30610_A-maze-ing Lakes (0) | 2024.10.17 |
[Baekjoon] 5993_Invasion of the Milkweed (0) | 2024.10.11 |