백준 2108

언어/python2019. 12. 8. 18:23
from operator import itemgetter
from collections import Counter
import sys

class Q_2108():

    def __init__(self):

        self._numCnt = 0
        self._numList = list()
        self._totalSum = 0

    def numSetting(self):

        self._numCnt = int(sys.stdin.readline())

        for _ in range(self._numCnt):
            e = int(sys.stdin.readline())
            self._totalSum += e
            self._numList.append(e)

        # 데이터 정렬
        self._numList.sort()

    def arithMean(self):

        avr = round((float(self._totalSum)/len(self._numList)))
        print(avr)


    def middleNumber(self):

        print(self._numList[int(len(self._numList)/2)])


    def largeCnt(self):

        modeDict = Counter(self._numList)
        modes = modeDict.most_common()

        if len(self._numList) > 1:

            if modes[0][1] == modes[1][1]:
                mod = modes[1][0]
            else:
                mod = modes[0][0]
        else:
            mod = modes[0][0]

        print(mod)

        # keyNum = set(self._numList)
        # numCnt = [(k,self._numList.count(k)) for k in keyNum]
        #
        # # value값을 기준으로 정렬
        # numCnt.sort(key= lambda e:(e[1], e[0]), reverse=True)
        #
        # # list는 순서를 보존한다.
        # rawV     = [i[1] for i in numCnt]
        # largeNum = rawV[0]
        # largeCnt = rawV.count(largeNum)
        # largeArr = [i[0] for i in numCnt[:largeCnt]]
        #
        # if len(largeArr) == 1:
        #     print(largeArr[0])
        #
        # elif len(largeArr) > 1:
        #     if len(largeArr) == 2:
        #         print(largeArr[1])
        #     else:
        #         print(largeArr[len(largeArr)-2])

    def numRange(self):

        print(self._numList[len(self._numList)-1] - self._numList[0])


if __name__ == "__main__":
    q = Q_2108()
    q.numSetting()
    q.arithMean()
    q.middleNumber()
    q.largeCnt()
    q.numRange()

'언어 > python' 카테고리의 다른 글

pdf 변환  (0) 2019.12.18
python으로 pdf 파일 read  (0) 2019.12.08
from csv to json convert + logstash  (0) 2019.11.26
네이버 기사 크롤링 => elasticsearch 적재  (0) 2019.07.12
naver music 크롤링 + elasticsearch  (0) 2019.05.22