ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 백준 2108번 문제 파이썬 풀이
    컴퓨터 공부 2020. 12. 25. 23:53

     

    파이썬 풀이

     

    import sys
    from collections import Counter
    
    N = int(sys.stdin.readline())
    
    # input()이 아닌 sys.stdin.readline()으로 받으면 더 빠르다
    
    arr = []
    
    for i in range(N):
        arr.append(int(sys.stdin.readline()))
    
    def mean(parameter):
        return round(sum(parameter)/len(parameter))
    
    # sum method와 len method를 활용한 mean 계산
    
    def median(parameter):
        array = parameter
        array.sort()
        mid = len(array) // 2
        return array[mid]
    
    # iterable type의 sort method를 활용
    
    def mode(parameter):
        var = parameter
        var.sort()
        mode_dict = Counter(var)
        modes = mode_dict.most_common()
    
        # collection module의 counter, most_common method를 이용, 이 때 반환되는 type에 주의,
        # 최종 반환 type은 list
        # 여기서 most_common의 method는 최빈값이 여러 개인 경우, 원래 입력된 리스트의 순서대로 담음
        # 따라서 정렬을 해준다
    
    
        if  len(parameter) > 1:
            if modes[0][1] == modes[1][1]:
                mod = modes[1][0]
            else:
                mod = modes[0][0]
        else:
            mod = modes[0][0]
    
        return mod
    
    def scope(arr):
        return max(arr) - min(arr)
    
    print(mean(arr))
    print(median(arr))
    print(mode(arr))
    print(scope(arr))

     

    댓글

Designed by Tistory.