洛谷题单2-P1085 [NOIP 2004 普及组] 不高兴的津津-python-流程图重构

题目描述

津津上初中了。妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班。另外每周妈妈还会送她去学习朗诵、舞蹈和钢琴。但是津津如果一天上课超过八个小时就会不高兴,而且上得越久就会越不高兴。假设津津不会因为其它事不高兴,并且她的不高兴不会持续到第二天。请你帮忙检查一下津津下周的日程安排,看看下周她会不会不高兴;如果会的话,哪天最不高兴。

输入格式

输入包括 777 行数据,分别表示周一到周日的日程安排。每行包括两个小于 101010 的非负整数,用空格隔开,分别表示津津在学校上课的时间和妈妈安排她上课的时间。

输出格式

一个数字。如果不会不高兴则输出 000,如果会则输出最不高兴的是周几(用 1,2,3,4,5,6,71, 2, 3, 4, 5, 6, 71,2,3,4,5,6,7 分别表示周一,周二,周三,周四,周五,周六,周日)。如果有两天或两天以上不高兴的程度相当,则输出时间最靠前的一天。

输入输出样例

输入

5 3
6 2
7 2
5 3
5 4
0 4
0 6

输出

3

方式-字典

代码

class Solution:
    @staticmethod
    def oi_input():
        """从标准输入读取数据"""
        day_data = {}
        for day in range(1, 8):  # 直接存储周一到周日的原始数据
            school, mom = map(int, input().split())
            day_data[day] = (school, mom)
        return day_data

    @staticmethod
    def oi_test():
        """提供测试数据"""
        return {
           1 : (5, 3),  # 周一
           2 : (6, 2),  # 周二
           3 : (7, 2),  # 周三
           4 : (5, 3),  # 周四
           5 : (5, 4),  # 周五
           6 : (0, 4),  # 周六
           7 : (0, 6)   # 周日
        }

    @staticmethod
    def solution(day_data):
        max_h = 0
        max_day = 0
        for day, (school, mom) in day_data.items():
            '''items() 将字典转成 --[(1, (5,3)), (2, (6,2)), ...]'''
            total = school + mom
            if total > 8 and total > max_h:  # 同时满足超时和当前最大值
                max_h = total
                max_day = day

        print(max_day)


oi_input = Solution.oi_input
oi_test = Solution.oi_test
solution = Solution.solution

if __name__ == '__main__':
    day_data = oi_test()
    # day_data = oi_input()
    solution(day_data)

流程图

数据分析
每日输入处理
计算总时间
total = school + mom
遍历字典数据
for day, (school, mom) in day_data.items()
total >8 且
total > max_h?
更新记录
max_h=total, max_day=day
读取输入行
school, mom = map(int, input().split())
循环7次输入
for day in 1-7
存储到字典
day_data[day] = (school, mom)
开始
主函数调用
初始化数据字典
day_data = {}
初始化统计变量
max_h=0, max_day=0
输出结果日
print(max_day)
结束
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值