문제 http://59.23.150.58/30stair/digit_game/digit_game.php?pname=digit_game
-N 명이 모여 숫자 게임을 하고자 한다.
각 사람에게는 1 부터 10 사이의 숫자가 적혀진 다섯 장의 카드가 주어진다. 그 중 세 장의 카드를 골라 합을 구한 후 일의 자리 수가 가장 큰 사람이 게임을 이기게 된다.
세 장의 카드가 (7, 8, 10)인 경우에는 합은 7+8+10 = 25가 되고 일의 자리 수는 5 가 된다. 어떤 사람이 받은 카드가 (7, 5, 5, 4, 9)인 경우 (7, 4, 9)를 선택하면 합이 20 이 되어 일의 자리 수는 0 이 되고, (5, 5, 9)를 선택하면 합이 19 가 되어 일의 자리 수는 9 가 된다.
게임을 이기기 위해서는 세 장의 카드를 선택할 때 그 합의 일의 자리 수가 가장 크게 되도록 선택하여야 한다.
예를 들어, N = 3 일 때
1번 사람이 (7, 5, 5, 4, 9),
2번 사람이 (1, 1, 1, 1, 1),
3번 사람이 (2, 3, 3, 2, 10)
의 카드들을 받았을 경우, 세 수의 합에서 일의 자리 수가 가장 크게 되도록 세 수를 선택하면
1번 사람은 (5, 5, 9)에서 9,
2번 사람은 (1, 1, 1)에서 3,
3번 사람은 (2, 3, 3)에서 8
의 결과를 각각 얻을 수 있으므로 첫 번째 사람이 이 게임을 이기게 된다.
N 명에게 각각 다섯 장의 카드가 주어졌을 때, 세 장의 카드를 골라 합을 구한 후 일의 자리 수가 가장 큰 사람을 찾는 프로그램을 작성하시오. 가장 큰 숫자를 갖는 사람이 두 명 이상일 경우에는 번호가 가장 큰 사람의 번호를 출력한다.
답
import java.util.Scanner;
public class Main {
public static void main(String args[]) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int total[] = new int[n];
int count = 0;
while (count < n) {
int max = 0;
int arr[] = new int[5];
for (int i = 0; i < 5; i++) {
arr[i] = scanner.nextInt();
}
for (int i = 0; i < 3; i++) {
for (int j = i + 1; j < 4; j++) {
for (int k = j + 1; k < 5; k++) {
int sum = arr[i] + arr[j] + arr[k];
max = Math.max(max, sum % 10);
}
}
}
total[count++] = max;
}
int x = 0;
int max = 0;
for (int j = 0; j < n; j++) {
max = Math.max(max,total[j]);
if (max == total[j]) {
x = j+1;
}
}
System.out.println(x);
}
문제 http://59.23.150.58/30stair/digit_game/digit_game.php?pname=digit_game -N 명이 모여 숫자 게임을 하고자 한다. 각 사람에게는 1 부터 10 사이의 숫자가 적혀진 다섯 장의 카드가 주어진다. 그 중 세 장의 카드를 골라 합을 구한 후 일의 자리 수가 가장 큰 사람이 게임을 이기게 된다. 세 장의 카드가 (7, 8, 10)인 경우에는 합은 7+8+10 = 25가 되고 일의 자리 수는 5 가 된다. 어떤 사람이 받은 카드가 (7, 5, 5, 4, 9)인 경우 (7, 4, 9)를 선택하면 합이 20 이 되어 일의 자리 수는 0 이 되고, (5, 5, 9)를 선택하면 합이 19 가 되어 일의 자리 수는 9 가 된다. 게임을 이기기 위해서는 세 장의 카드를 선택할 때 그 합의 일의 자리 수가 가장 크게 되도록 선택하여야 한다. 예를 들어, N = 3 일 때 1번 사람이 (7, 5, 5, 4, 9), 2번 사람이 (1, 1, 1, 1, 1), 3번 사람이 (2, 3, 3, 2, 10) 의 카드들을 받았을 경우, 세 수의 합에서 일의 자리 수가 가장 크게 되도록 세 수를 선택하면 1번 사람은 (5, 5, 9)에서 9, 2번 사람은 (1, 1, 1)에서 3, 3번 사람은 (2, 3, 3)에서 8 의 결과를 각각 얻을 수 있으므로 첫 번째 사람이 이 게임을 이기게 된다. N 명에게 각각 다섯 장의 카드가 주어졌을 때, 세 장의 카드를 골라 합을 구한 후 일의 자리 수가 가장 큰 사람을 찾는 프로그램을 작성하시오. 가장 큰 숫자를 갖는 사람이 두 명 이상일 경우에는 번호가 가장 큰 사람의 번호를 출력한다.
답
import java.util.Scanner;
public class Main { public static void main(String args[]) {
}