728x90
문제
https://www.acmicpc.net/problem/26310
풀이
문제에서 주어진 절차 A1 ~ A4에 따라 각 지역의 경쟁력을 계산하고, 최종 팀을 결정하는 문제다.
A1에서는 주어진 가중치에 따라 점수를 계산하면 된다.
// A1
// 입력 순서: s p_t p_u r_t r_u f
// site score = 0.56 * r_u + 0.24 * r_t + 0.14 * p_u + 0.06 * p_t + 0.3 * f
for (int i = 0; i < 6; i++) {
st = new StringTokenizer(br.readLine());
String country = st.nextToken();
final int p_t = Integer.parseInt(st.nextToken());
final int p_u = Integer.parseInt(st.nextToken());
final int r_t = Integer.parseInt(st.nextToken());
final int r_u = Integer.parseInt(st.nextToken());
final int f = Integer.parseInt(st.nextToken());
double score = 0.56 * r_u + 0.24 * r_t + 0.14 * p_u + 0.06 * p_t + 0.3 * f;
regionals.add(new Regional(country, score));
}
A2에서는 경쟁력을 기준으로 내림차순 정렬하면 된다.
// A2
regionals.sort((a, b)-> Double.compare(b.score, a.score));
A3에서는 슬롯을 각 지역에 배분하고, 수가 나누어 떨어지지 않는 경우에는 스코어가 높은 지역 순서대로 슬롯을 배분하면 된다.
// A3
final int remaining = N - 6;
for (Regional reg : regionals) {
reg.slots = 1;
}
int addBase = remaining / 6;
for (Regional reg : regionals) {
reg.slots += addBase;
}
int addExtra = remaining % 6;
for (int i = 0; i < addExtra; i++) {
regionals.get(i).slots++;
}
A4에서는 지역이 “Taiwan”인 팀을 찾아 배분된 슬롯 수를 출력하면 된다.
// A4
int res = 0;
for (Regional reg : regionals) {
if (reg.country.equals("Taiwan")) {
res = reg.slots;
break;
}
}
System.out.println(res);
소스코드
https://github.com/rogi-rogi/problem-solving/blob/main/baekjoon-online-judge/practice/26310.java
728x90
'PS > Baekjoon Online Judge' 카테고리의 다른 글
[백준 03980] 선발 명단 [Java] (0) | 2025.03.03 |
---|---|
[백준 18405] 경쟁적 전염 [Java] (0) | 2025.03.03 |
[백준 12571] Rope Intranet (Small) [Java] (0) | 2025.03.02 |
[백준 12352] Hedgemony (Large) [Java] (1) | 2025.03.02 |
[백준 12351] Hedgemony (Small) [Java] (0) | 2025.03.02 |