2023年8月5日 星期六

ZeroJudge python解答:b374. [福州19中]眾数

 b374. [福州19中]众数 - 高中生程式解題系統 (zerojudge.tw)

我的第四次解答。參考資料來源2. b374: 求眾數。發現dict()排序速度小於list()排序速度,因此,改用list()排序。

from collections import Counter
import sys
for line in sys.stdin:
    if line != "\n":
        n = int(line)
        nlist = [int(i) for i in input().split()]
        ndict = Counter(nlist)
        nlist01 = []
        nlist02 = []
        for i in ndict:
            nlist01.append(ndict[i])
        m = max(nlist01)
        for i in ndict:
            if ndict[i] == m:
                nlist02.append(i)
        nlist02.sort()
        for i in nlist02:
            print(f'{i} {m}')      
    else:
        break

送出解答:


我的第三次解答。由於第二次解答出現時間過長,所以調整作法。但是最後還是出現TLS。

from collections import Counter
import sys
for line in sys.stdin:
    if line != "\n":
        n = int(line)
        nlist = [int(i) for i in input().split()]
        ndict = Counter(nlist)
        for i in sorted(ndict.keys()):
            if ndict[i] == max(ndict.values()):
                print(i,ndict[i])    
    else:
        break

 送出解答:

其細節還是出現在最後的項目:

我的第二次解答。由於第一次解答出現時間過長,所以參考資料來源3.Counter

from collections import Counter
import sys
for line in sys.stdin:
    if line != "\n":
        n = int(line)
        nlist = [int(i) for i in input().split()]
        nCounter = Counter(nlist)
        maxnC = max(nCounter.values())
        for i in nCounter.keys():
            if nCounter[i] == maxnC:
                print(i," ",maxnC)
    else:
        break

 送出測試的程式碼:

from collections import Counter
import sys
for line in sys.stdin:
    if line != "\n":
        n = int(line)
        nlist = [int(i) for i in input().split()]
        nCounter = Counter(nlist)
        maxnC = max(nCounter.values())
        for i in nCounter.keys():
            if nCounter[i] == maxnC:
                print(i," ",maxnC)
    else:
        break

所得的結果:

送出解答:

不足的部分

我的第一次解答。在最後送出答案,卻出現錯誤,其詳情如下。又,送出測試的格式與送出答案的格式不同,必須作細項調整。

import sys
for line in sys.stdin:
    if line != "\n":
        n = int(line)
        nlist = [int(i) for i in input().split()]
        nset = set(nlist)
        ndict = dict()
        for i in nset:
            ndict[i] = 0
            for j in nlist:
                if i == j :
                    ndict[i] = ndict[i] + 1
        for i in ndict:
            if ndict[i] == max(ndict.values()):
                print(str(i)+"   "+str(ndict[i]))
    else:
        break

送出測試:

送出解答:

仔細檢查內部問題:


 

資料來源:
1.高中生解題系統

2. b374: 求眾數

3.Counter


ZeroJudge解題
ZeroJudge python解答:a004. 文文的求婚
ZeroJudge python解答:a005. Eva 的回家作業
ZeroJudge python解答:a006. 一元二次方程式
ZeroJudge python解答:a009. 解碼器
ZeroJudge python解答:a010. 因數分解
ZeroJudge python解答:a015. 矩陣的翻轉
ZeroJudge python解答:a017. 五則運算
ZeroJudge python解答:a020. 身分證檢驗
ZeroJudge python解答:a021. 大數運算
ZeroJudge python解答:a022. 迴文
ZeroJudge python解答:a024. 最大公因數(GCD)
ZeroJudge python解答:a034. 二進位制轉換
ZeroJudge python解答:a038. 數字翻轉
ZeroJudge python解答:a040. 阿姆斯壯數
ZeroJudge python解答:a042. 平面圓形切割
ZeroJudge python解答:a044. 空間切割
ZeroJudge python解答:a053. Sagit's 計分程式
ZeroJudge python解答:a054. 電話客服中心
ZeroJudge python解答:a058. MOD3
ZeroJudge python解答:a059. 完全平方
ZeroJudge python解答:a065. 提款卡密碼
ZeroJudge python解答:a104. 排序
ZeroJudge python解答:a121. 質數又來囉
ZeroJudge python解答:a148. You Cannot Pass?!
ZeroJudge python解答:a149. 乘乘樂
ZeroJudge python解答:a215. 明明愛數數
ZeroJudge python解答:a216. 數數愛明明
ZeroJudge python解答:a224. 明明愛明明
ZeroJudge python解答:a225. 明明愛排列
ZeroJudge python解答:a244. 新手訓練 ~ for + if
ZeroJudge python解答:a248. 新手訓練 ~ 陣列應用
ZeroJudge python解答:a263. 日期差幾天
ZeroJudge  python解答:a694. 吞食天地二
ZeroJudge python解答:a738. 最大公约数

 

 

沒有留言:

張貼留言

軟體定義網路SDN-主題2-1 OpenFlow 概述

學習目標: 一.介紹OpenFlow特性 二.介紹OpenFlow Ports:實體port、邏輯port、保留port 一.介紹OpenFlow特性 1.OpenFlow 是 (1).控制器與交換器之間溝通的通訊協定 (2)使用了TCP (port 6653;舊版 port 6...