Huawei ODマシンテスト綱引き(Javaソースコード)

綱引き

トピックの説明

会社は最近綱引きの準備をしており、全従業員の中から選ぶ必要がある。
選択ルールは次のとおりです。

  1. 身長と体重を二番目に優先する方法で試合のラインナップを準備します。
  2. 参加チームは10人の選手を派遣する必要がある。
プレイヤーを選択するための小さなプログラムを実装してください。入力は、[身長、体重] など、部門担当者の身長と体重の情報を記録する配列です。部門の全メンバーの数は 10 より大きい配列です。サイズ 10 の 2 次元配列を出力する必要があります。

説明を入力してください

入力は、選考に登録する部門の候補者の情報を示す N 行の従業員情報です。各行には、従業員の身長と体重の情報を示す 2 つの数字がスペースで区切られています。たとえば、181 70 182 70 は社員候補者 2 名で、 1人目
身長は181 cm、70 kg、2 人目は身長 182 cm、体重 70 kg を示します。


注意
入力データ範囲:

  • メンバーの身長と体重は int データ型です。
  • 候補メンバーの数を N、10 ≤ N ≤ 100 として入力します

出力の説明

カンマで区切られた次の大きな数値リスト (例: 2,3,6,-1,6)

入力 181 70
182 70
183
70 184
70 185
70 186
70
180 71
180 72 180 73
180 74
180 75
出力 186 70
185 70
184 70
183 70
182
70 181
70
180 75 180
74 180 73
180 72
説明する なし

分析する

  1. この質問は非常に難しそうに見えますが、データ構造が定義されている限り、実際には非常に簡単です。
  2. 実際には、List コレクションにエンティティ クラスが読み込まれ、このエンティティ クラスにはプレーヤーの基本情報が記録されます。
  3. コレクションを並べ替えるだけ

サンプルコード

import java.util.ArrayList;
import java.util.Scanner;
//180 70
//198 60
//175 80
//175 70
//175 60
//198 90
//199 100
//170 55
//170 60
//170 65
//177 88
//185 80
//拔河比赛
public class T69 {
    
    
	static class Person {
    
    
		int w;
		int h;

		public Person(int w, int h) {
    
    
			this.w = w;
			this.h = h;
		}
	}

	public static void main(String[] args) {
    
    
		Scanner sc = new Scanner(System.in);
		ArrayList<Person> persons = new ArrayList<>();
		while (sc.hasNextLine()) {
    
    
			String line = sc.nextLine();
			if (line.equals(""))
				break;
			Person person = new Person(Integer.parseInt(line.split(" ")[1]), Integer.parseInt(line.split(" ")[0]));
			persons.add(person);
		}
		persons.sort((p1, p2) -> p1.h != p2.h ? p2.h - p1.h : p2.w - p1.w);
		for (int i = 0; i < 10; i++) {
    
    
			System.out.println(persons.get(i).h + " " + persons.get(i).w);
		}
	}
}

コードの実行例
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/qq_33183456/article/details/131322105