각 조의 항목별 점수를 입력 받아 최고 점수를 받은 조를 선발하라. 점수항목과 조는 다음과 같다.
완성도 | 창의성 | 이해도 | |
---|---|---|---|
1조 | |||
2조 | |||
3조 | |||
4조 | |||
5조 |
//출력 예시
1조 점수 입력 : 10
1조 점수 입력 : 20
1조 점수 입력 : 22
1조 점수 입력 : 22
1조 점수 입력 : 2
2조 점수 입력 : 10
2조 점수 입력 : 19
2조 점수 입력 : 18
3조 점수 입력 : 100
3조 점수 입력 : 100
3조 점수 입력 : 200
3조 점수 입력 : 20
3조 점수 입력 : 20
3조 점수 입력 : 1
4조 점수 입력 : 20
4조 점수 입력 : 20
4조 점수 입력 : 20
5조 점수 입력 : 13
5조 점수 입력 : 15
5조 점수 입력 : 13
최고팀 : 4번째팀 -> 점수 : 60
score[5][3]
을 이용한다.출력 예시 : 최고팀 : 3번째 팀 -> 점수 : 59
0-20점
사이의 점수만 입력 받는다고 가정한다.package Array;
import java.util.Scanner;
public class Array2_score {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int[][] score = new int[5][3];
int[] sum = new int[5];
int index = 0;
int max;
//입력
for ( int i = 0; i < score.length; i++ ) {
for ( int j = 0; j < score[i].length; j++ ) {
do {
System.out.print((i+1)+"조 점수 입력 : ");
score[i][j] = scan.nextInt();
} while ( score[i][j] < 0 || score[i][j] > 20);
sum[i] += score[i][j];
}
}
//처리
max = sum[0];
int team = 1; //최고팀
for ( int i = 1; i < score.length; i++ ) {
if ( max <= sum[i]) {
max = sum[i];
team = i+1;
}
}
//출력
System.out.println("최고팀 : "+team+"번째팀 -> 점수 : "+max);
}
}
import java.util.Scanner;
...
Scanner scan = new Scanner(System.in);
int[][] score = new int[5][3];
int[] sum = new int[5];
int max;
점수 입력을 받기 위한 Scanner
를 세팅한다.
각각의 팀의 분야별 점수를 입력할 score[][]
의 크기를 5
와 3
으로 지정한다. 5개의 팀과 각 팀을 평가할 심사 기준 3개이다.
각 팀의 총점을 저장할 sum
배열을 선언한다. 5개의 팀이므로 크기를 5
로 세팅한다.
5개의 팀의 sum
중에서 최댓값을 나타내는 max
를 선언한다.
//입력
for ( int i = 0; i < score.length; i++ ) {
for ( int j = 0; j < score[i].length; j++ ) {
do {
System.out.print((i+1)+"조 점수 입력 : ");
score[i][j] = scan.nextInt();
} while ( score[i][j] < 0 || score[i][j] > 20);
sum[i] += score[i][j];
}
}
1~5
조의 각 부문별 점수를 입력받아 score
배열에 차곡차곡 저장한다.
입력받는 순서는 완성도, 창의성 이해도 순서이다.
만약 0~20
까지의 범위에서 벗어난 점수를 입력받았을 경우 다시 입력하도록 만들고 정상적인 점수를 sum
배열에 누적시킨다.
//처리
max = 0;
int team = 1; //최고팀
for ( int i = 0; i < score.length; i++ ) {
if ( max <= sum[i]) {
max = sum[i];
team = i+1;
}
}
최댓값을 나타내는 max
의 초깃값을 0
, 즉 점수의 최솟값으로 준다.
최고 점수를 받은 조를 받는 team
을 선언 후 1
로 초기화한다.
만약 max
에 들어있는 조의 점수보다 sum[i]
에 들어있는 조의 점수가 더 크다면 max
에는 sum[i]
의 점수를 저장하고 최고 점수 팀도 team
에 i+1
을 저장한다. sum[0]
의 값이 1조의 값이므로 i+1
을 team
에 저장한다.
//출력
System.out.println("최고팀 : "+team+"번째팀 -> 점수 : "+max);
}
}
최고팀과 몇 번째 팀과 점수를 출력한다.