【华为OD题库-066】冠亚军排名-java

news/2024/7/20 19:52:36 标签: 华为od, java

题目

2012伦敦奥运会即将到来,大家都非常关注奖牌榜的情况,现在我们假设奖牌榜的排名规则如下.
1.首先gold medal数量多的排在前面
2.其次silver medal数量多的排在前面
3.然后bronze medal数量多的排在前面
4.若以上三个条件仍无法区分名次,则以国家名称的字典顺序排定
我们假设国家名称不超过二十个字符,各类奖牌数不超过100,且大于0
输入描述
第一行输入一个整数N(0<N<21),代表国家数量
然后接下来的N行,每行包含1个字符串Name,表示各个国家的名称和三个整数Gi.Si,Bi表示每个获得的gold medal.silver medal.bronze medal的数量,以空格隔开,如(China 51 2021)。
具体见样例输入。
输出描述
输出奖牌榜的依次顺序,只输出国家名称,各占一行,具体见样例输出
示例1:
输入
5
China 32 28 34
England 12 34 22
France 23 33 2
Japan 12 34 25
Rusia 23 43 0
输出
China
Rusia
France
Japan
England
说明

思路

自定义对象排序,送分题

题解

java">package hwod;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;

public class CountrySort {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        sc.nextLine();
        List<CountryMedal> list = new ArrayList<>();
        for (int i = 0; i < n; i++) {
            String[] splits = sc.nextLine().split(" ");
            list.add(new CountryMedal(splits[0], Integer.parseInt(splits[1]), Integer.parseInt(splits[2]), Integer.parseInt(splits[3])));
        }
        Collections.sort(list);
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i).getName());
        }
    }



}

class CountryMedal implements Comparable<CountryMedal> {
    private String name;
    private int gold;
    private int silver;
    private int bronze;

    public CountryMedal(String name, int gold, int silver, int bronze) {
        this.name = name;
        this.gold = gold;
        this.silver = silver;
        this.bronze = bronze;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public int compareTo(CountryMedal o) {
        if(this.gold!=o.gold) return o.gold - this.gold;
        if(this.silver!=o.silver) return o.silver - this.silver;
        if(this.bronze!=o.bronze) return o.bronze - this.bronze;
        return this.name.compareTo(o.name);
    }
}

推荐

如果你对本系列的其他题目感兴趣,可以参考华为OD机试真题及题解(JAVA),查看当前专栏更新的所有题目。


http://www.niftyadmin.cn/n/5241085.html

相关文章

Http中post和get

get产生一个tcp数据包&#xff0c;服务器只响应一次&#xff0c;而post请求服务器会响应两次&#xff08;第一次发送请求头响应100&#xff0c;再次响应返回200&#xff0c;成功

CSS基础概念之选择器类型

CSS选择器类型 选择器表示元素在树结构中的特定模式。选择器(selector)术语指的是&#xff0c;简单选择器(simple selector)&#xff0c;复合选择器(compound selector)&#xff0c;复杂选择器(complex selector)&#xff0c;或者选择器列表(selector list)。选择器的主题是任…

SI24R03 高度集成低功耗SOC 2.4G 收发一体芯片

今天给大家介绍一款Soc 2.4G 收发一体模块-SI24R03 Si24R03是一款高度集成的低功耗无线SOC芯片&#xff0c;芯片为QFN32 5x5mm封装&#xff0c;集成了资源丰富的MCU内核与2.4G收发器模块&#xff0c;最低功耗可达1.6uA&#xff0c;极少外围器件&#xff0c;大幅降低系统应用成本…

RNN、Seq2Seq、Transformers:NLP 中常用的神经架构简介

循环神经网络是一类神经架构&#xff0c;具有很酷的特性——循环机制——这使得它们成为处理可变长度的顺序数据的自然选择。与标准神经网络不同&#xff0c;RNN 可以在接受新输入的同时保留前一层的信息。 这是它的工作原理 假设我们正在构建一个电子商务聊天机器人&#xff…

vue优化的方法

以下是 Vue 优化的一些方法&#xff1a; 使用 v-if 替代 v-show v-show 会渲染组件并将其隐藏&#xff0c;而 v-if 只有在满足条件时才会渲染组件&#xff0c;能够减少 DOM 树的大小&#xff0c;提高渲染性能。 避免使用 v-for 渲染大量数据 当需要渲染大量数据时&#xff…

OpenSSL_密码学摘要

使用版本V3.2.0 来源&#xff1a;https://www.openssl.org/ OpenSSL源代码主要由eay库、ssl库、工具源码、范例源码以及测试源码组成。 一、eay库是基础的库函数&#xff0c;提供了很多功能。 二、crypto目录下代码块&#xff1a; asn.1 DER编码解码(crypto/asn1目录)&…

jQuerylayui

$(document).ready(function(){ // 开始写 jQuery 代码... }); 这是为了防止文档在完全加载&#xff08;就绪&#xff09;之前运行 jQuery 代码&#xff0c;即在 DOM 加载完成后才可以对 DOM 进行操作。 jquery选择器 选择器有三种 $("p")元素选择器 $("#te…

获得矩阵对角线元素的索引 numpy.diag_indices_from()

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 获得矩阵对角线元素的索引 numpy.diag_indices_from() [太阳]选择题 请问关于以下代码的选项表述错误的是&#xff1f; import numpy as np a np.array([[1, 2, 3], [4, 5, 6…