๐ฏ ๋ฌธ์ ๋ชฉํ
- ๊ฐ ๊ณต์ ์๊ณผ ํฌ๊ธฐ๋ฅผ ๊ฐ์ง๋ค.
- ๋ชจ๋ ๊ณต ์์ ๋ํด ์๋ก ๋ค๋ฅธ ์์ด๋ฉด์ ์์ ๊ณต์ ํฌ๊ธฐ๋งํผ ์ ์๋ฅผ ํ๋ํ๋ค.
- ๊ฐ ๊ณต์ด ์ป์ ์ ์๋ ์ด ์ ์๋ฅผ ์ถ๋ ฅํ๋ค.
โ ํ์ด ์ ๋ต ์์ฝ
Ball ๊ฐ์ฒด ์ ์
โcolor,size,index๋ฅผ ์ ์ฅํ๋ ํด๋์ค ์์ฑ์ ๋ ฌ ๊ธฐ๋ฐ ๋์ ํฉ ์๊ณ ๋ฆฌ์ฆ
โ ๊ณต์ ํฌ๊ธฐ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํ๊ณ , ๊ฐ์ ํฌ๊ธฐ๊น์ง๋ ์ ์ ๊ณ์ฐ์ ๋ฏธ๋ค๋๋ค
โ ๋์ ํฉ์ ํ์ฉํด ์ดํฉ๊ณผ ์์๋ณ ํฉ์ ๋ฏธ๋ฆฌ ๊ด๋ฆฌํ๋คํฌ ํฌ์ธํฐ
โ ํ์ฌ ๊ณต๋ณด๋ค ์์ ๊ณต๋ค์ ์ ๋ถ ํฌํจ์ํค๋ ๋ฐฉ์์ผ๋ก ์ ์ ๋์ ์์ด ๊ฐ์ ๊ฒฝ์ฐ ์ ์ธ
โ ๊ฐ์ ์์ ํฉ์ ์ ์ธํ์ฌ ์ ์ ๊ณ์ฐ
๐ก ํต์ฌ ๊ฐ๋
| ๋ณ์ | ์๋ฏธ |
|---|---|
total |
์ง๊ธ๊น์ง ๋ณธ ๊ณต ์ค ํฌ๊ธฐ๊ฐ ํ์ฌ ๊ณต๋ณด๋ค ์์ ๊ณต๋ค์ ์ ์ฒด ํฌ๊ธฐ ํฉ |
colorSum[color] |
ํน์ ์์ ๊ณต์ ๋์ ํฌ๊ธฐ ํฉ |
result[i] |
i๋ฒ ๊ณต์ด ์ป์ ์ ์๋ ์ ์ (์กฐ๊ฑด ๋ง์กฑํ๋ ๋ค๋ฅธ ๊ณต๋ค์ ํฌ๊ธฐ ํฉ) |
๐ป ์ ์ฒด ์ฝ๋
import java.io.*;
import java.util.*;
public class Main {
static class Ball implements Comparable<Ball> {
int color, size, index;
Ball(int color, int size, int index) {
this.color = color;
this.size = size;
this.index = index;
}
@Override
public int compareTo(Ball o) {
return this.size - o.size;
}
}
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
Ball[] balls = new Ball[n];
int maxColor = 0;
for (int i = 0; i < n; i++) {
StringTokenizer st = new StringTokenizer(br.readLine());
int c = Integer.parseInt(st.nextToken());
int s = Integer.parseInt(st.nextToken());
balls[i] = new Ball(c, s, i);
maxColor = Math.max(maxColor, c);
}
Arrays.sort(balls); // ํฌ๊ธฐ ๊ธฐ์ค ์ ๋ ฌ
int[] result = new int[n];
int[] colorSum = new int[maxColor + 1];
int total = 0, j = 0;
for (int i = 0; i < n; i++) {
Ball cur = balls[i];
// ํ์ฌ ๊ณต๋ณด๋ค ์์ ํฌ๊ธฐ ๊ณต๋ค์ ๋์ ํฉ ์
๋ฐ์ดํธ
while (balls[j].size < cur.size) {
total += balls[j].size;
colorSum[balls[j].color] += balls[j].size;
j++;
}
// ์ดํฉ - ๊ฐ์ ์์ ๋์ ํฉ
result[cur.index] = total - colorSum[cur.color];
}
for (int r : result) System.out.print(r + "\n");
}
}
๐ ์ ๋ฆฌ
- ์ ๋ ฌ ํ ํฌ ํฌ์ธํฐ ๋ฐฉ์์ผ๋ก ๋์ ํฉ์ ๊ฐฑ์ ํ๋ฉด์ ํ์
- ๊ฐ์ ์์ ์ ์์ ํฌํจํ์ง ์๋๋ก ์์๋ณ ํฉ์ ๋ฐ๋ก ๊ด๋ฆฌ
- ๋ณต์กํ ๋ธ๋ฃจํธํฌ์ค๋ณด๋ค ํจ์ฌ ํจ์จ์ ์ธ ๋์ ํฉ ์ ๋ต
'์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| ๋ฐฑ์ค 1557: ๋๋ก์ ๊ฐ์(Java) (1) | 2025.06.11 |
|---|---|
| ๋ฐฑ์ค 2248 - ์ด์ง์ ์ฐพ๊ธฐ(Java) (1) | 2025.06.07 |
| ๋ฐฑ์ค 2294: ๋์ 2(Java) (1) | 2025.06.02 |
| ๋ฐฑ์ค 1167: ํธ๋ฆฌ์ ์ง๋ฆ(Java) (0) | 2025.05.26 |
| ๋ฐฑ์ค 1976: ์ฌํ ๊ณํ(Java) (0) | 2025.05.24 |