๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/5462)
< POI >
๋ฌธ์ ํ์ด
: ๊ฐ ๋ฌธ์ ์ ์
: ๊ฐ ์ฐธ๊ฐ์๋ณ ํ๋ ์ ์
: ๊ฐ ์ฐธ๊ฐ์๋ณ ํผ ๋ฌธ์ ์
๋ฅผ ๊ตฌํ์ฌ ์ฐ์ ์์ ํ๋ฅผ ํ์ฉํด ์ ์ > ํผ ๋ฌธ์ ์ > ID ์์ผ๋ก ์ ๋ ฌํ๋ค.
my solution (Java)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.PriorityQueue;
import java.util.StringTokenizer;
public class _5462_ { // POI
static class Person implements Comparable<Person> {
private int score;
private int problem;
private int id;
public Person(int score, int problem, int id) {
this.score = score;
this.problem = problem;
this.id = id;
}
@Override
public int compareTo(Person o) {
if (this.score == o.score) {
if (this.problem == o.problem) {
return this.id - o.id;
}
return o.problem - this.problem;
}
return o.score - this.score;
}
}
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(bf.readLine());
int N = Integer.parseInt(st.nextToken());
int T = Integer.parseInt(st.nextToken());
int P = Integer.parseInt(st.nextToken());
int arr[][] = new int[N][T];
int score[] = new int[T];
for (int i = 0; i < N; i++) {
st = new StringTokenizer(bf.readLine());
for (int j = 0; j < T; j++) {
arr[i][j] = Integer.parseInt(st.nextToken());
if (arr[i][j] == 0) {
score[j] += 1;
}
}
}
PriorityQueue<Person> queue = new PriorityQueue<>();
for (int i = 0; i < N; i++) {
int num = 0, s = 0;
for (int j = 0; j < T; j++) {
if (arr[i][j] == 1) {
num += 1;
s += score[j];
}
}
queue.add(new Person(s, num, i + 1));
}
int rank = 0;
Person person = null;
while (!queue.isEmpty()) {
person = queue.poll();
if (person.id == P) {
rank += 1;
break;
}
rank += 1;
}
System.out.println((person.score) + " " + rank);
}
}
๋ณ์)
N, T, P : ์ฐธ๊ฐ์ ์, ๋ฌธ์ ์, P ID
arr : ๋ฌธ์ ํผ ์ฌ๋ถ
score : ๊ฐ ๋ฌธ์ ์ ์
queue : ์ฐ์ ์์ ํ
rank : P์ ๋ฑ์
Person
์ ์, ํผ ๋ฌธ์ ์๋ฅผ ๋ณ์๋ก ๊ฐ์ง
์ ์ ๋ด๋ฆผ์ฐจ์, ํผ ๋ฌธ์ ์ ๋ด๋ฆผ์ฐจ์, ID ์ค๋ฆ์ฐจ์์ผ๋ก ๊ฐ์ฒด๋ฅผ ๋น๊ตํ๋ค.
Main
์ฐธ๊ฐ์ ์, ๋ฌธ์ ์, P ID๋ฅผ ์ ๋ ฅ๋ฐ๋๋ค. ๊ฐ ์ฐธ๊ฐ์์ ๋ฌธ์ ํผ ์ฌ๋ถ๋ฅผ ์ ๋ ฅ๋ฐ์ arr์ ์ ์ฅํ๋ฉฐ ๊ฐ ๋ฌธ์ ๋ฅผ ํ์ง ๋ชปํ ์ฌ๋์ ์๋ฅผ ๊ตฌํด score์ ์ ์ฅํ๋ค. arr์ ์ ์ฒด ํ์ํ๋ฉฐ ๊ฐ ์ฐธ๊ฐ์๋ณ ์ ์์ ํผ ๋ฌธ์ ์๋ฅผ ๊ตฌํด ์ฐ์ ์์ ํ์ Person ๊ฐ์ฒด๋ก ์ ์ฅํ๋ค. ์ฐ์ ์์ ํ๋ฅผ poll ํ๋ฉด์ P๋ฅผ ์ฐพ์ ๋๊น์ง rank๋ฅผ ๊ตฌํ๋ค. ์ต์ข P์ ์ ์์ rank๋ฅผ ์ถ๋ ฅํ๋ค.
'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 6147_Bookshelf (0) | 2024.12.02 |
---|---|
[Baekjoon] 9047_6174 (1) | 2024.11.29 |
[Baekjoon] 6191_Cows on Skates (0) | 2024.11.25 |
[Baekjoon] 6832_Maze (0) | 2024.11.22 |
[Baekjoon] 14145_ลฝetva (0) | 2024.11.21 |