codingame 实践 the descent 教程01-03。

01 Descending mountains

第一个测试数据很简单,山高从高到低依次输入,所以我们仅需要依次循环山名即可。具体代码如下:

while True:
	for i in range(8):
		mountain_h=int(input())
	for i in range(8):
		print(i)

02 Scattered mountains

第二个测试数据稍微有些复杂,山名与山的高度不是依次排序,这里我们用到python中的字典,代码如下:

while True:
    dict1={}#建立空字典
    for i in range(8):#添加山名与对应山高到空字典中
        mountain_h = int(input())
        key=i
        value=mountain_h
        dict1[key]=mountain_h
    dict1.items()
    L=list(dict1.items())#遍历字典中的键值并保存到列表中
    L.sort(key=lambda x:x[1],reverse=True)#用列表的排序语法来从高到低排列山名
    for i in range(8):#从高到低输出山名
        mountain_n=str(L[i])
        print(mountain_n[1:2])

03 Strong mountains 1

这个测试数据中的山1、2、3中各需要摧毁两次,所以我们需要在原来的基础上用个if,暴力摧毁。代码如下:

while True:
    dict1={}
    for i in range(8):
        mountain_h = int(input())
        key=i
        value=mountain_h
        dict1[key]=mountain_h
    dict1.items()
    L=list(dict1.items())
    L.sort(key=lambda x:x[1],reverse=True)
    for i in range(8):
        mountain_n=str(L[i])
        if mountain_n[1:2]=='1':#这里摧毁1的时候顺带摧毁3,因为1第一次掉4点,3第一次掉2,导致3比1高,再循环会坠机。
            print('1')
            print('3')
        if mountain_n[1:2]=='2':
            print('2')
        print(mountain_n[1:2])
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值