728x90
반응형
2024.05.26기준 - 브론1
백준, BEAKJOON, BOJ, JAVA, 자바
풀이
이 문제는 여러 팀의 기록이 주어졌을 때,
각 팀의 피타고라스 기댓값을 계산하고 최대 및 최소 기댓값을 출력하는 문제입니다.
Team 클래스로 팀의 득점과 실정을 저장하는 클래스를 생성했습니다.
그러고 입력 받은 각 경기의 결과를 각 팀의 득점과 실점에 반영하여,
각 팀의 피타고라스 기댓값을 계산하고, 최대 및 최소를 찾아주는 문제였습니다.
코드
import java.io.*;
import java.util.*;
public class Main {
// 팀의 득점과 실점을 저장하는 클래스
public static class Team {
int score, loss;
public Team(int s, int l) {
score = s;
loss = l;
}
}
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringBuilder sb = new StringBuilder();
int t = Integer.parseInt(br.readLine());
StringTokenizer st;
while (t-- > 0) {
st = new StringTokenizer(br.readLine());
int n = Integer.parseInt(st.nextToken()); // 팀의 수
int m = Integer.parseInt(st.nextToken()); // 경기의 수
Team[] arr = new Team[n + 1];
for (int i = 1; i <= n; i++) {
arr[i] = new Team(0, 0); // 각 팀의 득점과 실점을 0으로 초기화
}
while (m-- > 0) {
st = new StringTokenizer(br.readLine());
int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
int as = Integer.parseInt(st.nextToken());
int bs = Integer.parseInt(st.nextToken());
// 첫 번째 팀의 득점과 실점을 업데이트
arr[a].score += as;
arr[a].loss += bs;
// 두 번째 팀의 득점과 실점을 업데이트
arr[b].score += bs;
arr[b].loss += as;
}
double max = Double.MIN_VALUE;
double min = Double.MAX_VALUE;
double sum = 0;
for (int i = 1; i <= n; i++) {
if (Math.pow(arr[i].score, 2) + Math.pow(arr[i].loss, 2) == 0) { // 팀의 득점과 실점이 모두 0인 경우 예외 처리
sum = 0;
} else {
// 피타고라스 기댓값 계산
sum = (Math.pow(arr[i].score, 2) / (Math.pow(arr[i].score, 2) + Math.pow(arr[i].loss, 2))) * 1000;
}
max = Math.max(max, sum);
min = Math.min(min, sum);
}
sb.append((int)max).append("\n").append((int)min).append("\n");
}
bw.write(sb.toString());
bw.flush();
bw.close();
br.close();
}
}
728x90
반응형
'코딩테스트 일기 (BAEKJOON)' 카테고리의 다른 글
BAEKJOON / 백준 - JAVA 31869번 선배님 밥 사주세요! (2) | 2024.05.29 |
---|---|
BAEKJOON / 백준 - JAVA 31866번 손가락 게임 (0) | 2024.05.27 |
BAEKJOON / 백준 - JAVA 31798번 단원평가 (0) | 2024.05.24 |
BAEKJOON / 백준 - JAVA 31800번 Best Chance (0) | 2024.05.23 |
BAEKJOON / 백준 - JAVA 31821번 학식 사주기 (0) | 2024.05.22 |