Post

Baekjoon2108 - 통계학 (Python)

백준 사이트 2108 - 통계학 문제입니다.

이 글을 보시기 전에 문제를 풀기 위해 충분한 생각을 하셨나요? 답을 안 보고 푸는게 최대한 고민하는게 가장 중요하다고 생각합니다.!!

☑️ 1. 문제

https://www.acmicpc.net/problem/2108


☑️ 2. Input , Output


☑️ 3. 분류 및 난이도

solved.ac의 클래스2난이도 문제입니다.


☑️ 4. 생각한 것들

  • 최빈값 구하는게 좀 귀찮을뿐이지 어렵지는 않습니다.
  • 음수처리를 어떻게 해주냐에 따라 코드가 다를것 같습니다. 저는 부호없는 숫자로 만들었습니다.

5. code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
from operator import itemgetter
from sys import stdin


# noinspection PyTupleAssignmentBalance
def solution() -> None:
    def init():
        cnt = int(stdin.readline())
        input_list = []
        for i in range(cnt):
            input_list.append(int(stdin.readline()))
        return cnt, input_list

    def operation(li: list, counting_list: list):
        sum_ = 0
        max_ = 0
        for i in range(len(li)):
            sum_ += li[i]
            idx = li[i] + 4000
            counting_list[idx] += 1
            if max_ < counting_list[idx]:
                max_ = counting_list[idx]
        return sum_, max_

    counting = [0] * 8001
    max_list = []
    n, data_input = init()

    data_input.sort()

    data_sum, max_result = operation(data_input, counting)

    for i in range(len(counting)):
        if counting[i] == max_result:
            max_list.append(i)

    max_result = max_list[-1] if len(max_list) == 1 else max_list[1]
    print(round(data_sum / n), data_input[n // 2], max_result - 4000, data_input[-1] - data_input[0], sep='\n')


solution()



6. 후기

c++로 작성이 필요하거나 도움이 필요하시면 댓글을 작성해주세요.!! 기록용이라 설명이 자세하지 않습니다.

This post is licensed under CC BY 4.0 by the author.