알고리즘
[백준] 17207번 : 돌려막기 - JAVA
DoosanBaek
2024. 11. 13. 17:22
import java.util.Scanner;
/* 연습문제 6번 돌려 막기 */
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 행렬 A와 B 초기화
int[][] A = new int[5][5];
int[][] B = new int[5][5];
// 행렬 A 입력받기
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
A[i][j] = sc.nextInt();
}
}
// 행렬 B 입력받기
for (int i = 0; i < 5; i++) {
for (int j = 0; j < 5; j++) {
B[i][j] = sc.nextInt();
}
}
sc.close();
// 사람의 이름 목록
String[] names = {"Inseo", "Junsuk", "Jungwoo", "Jinwoo", "Youngki"};
int[] workloads = new int[5];
// 각 사람의 최종 일량 계산
for (int x = 0; x < 5; x++) {
for (int y = 0; y < 5; y++) {
int workAmount = 0;
for (int i = 0; i < 5; i++) {
workAmount += A[x][i] * B[i][y];
}
workloads[x] += workAmount;
}
}
// 최종 일량이 가장 작은 사람 찾기
int minIndex = 0;
for (int i = 1; i < 5; i++) {
if (workloads[i] < workloads[minIndex]) {
minIndex = i;
} else if (workloads[i] == workloads[minIndex]) {
// 최종 일량이 같은 경우, 우선 순위 조사
// "Youngki", "Jinwoo", "Jungwoo", "Junsuk", "Inseo" 순으로 우선순위
if (names[i].compareTo(names[minIndex]) < 0) {
minIndex = i;
}
}
}
// 가장 일이 바쁘지 않은 사람 출력
System.out.println(names[minIndex]);
}
}