여러가지 처리


답안 제출

Points: 6
시간 제한: 2.0s
메모리 제한: 1G

문제 유형
허용된 언어
Python

임의의 개수로 전달되는 위치 인자와 키워드 인자를 받아, 입력된 모든 수의 최소값, 최대값, 평균값, 중간값을 구하는 함수 \(f()\)를 작성하시오.

< 처리조건 >

  1. 전달받은 위치 인자(\(*args\))의 값들과 키워드 인자(\(**kwargs\))의 값들을 하나의 데이터 모음으로 합쳐서 계산한다.
  2. 입력되는 모든 인자의 값은 \(1\) 이상 \(100\) 이하의 양의 정수이다. (\(1 \le x \le 100\))
  3. 중간값(Median)은 전달된 값들을 오름차순 정렬했을 때 가운데 위치한 값이다.
    • 데이터 개수가 짝수여서 중간값이 2개 발생하는 경우, 인덱스 기준 \(len // 2\) 위치의 값을 선택한다.
  4. 함수 \(f()\)는 \((최소값, 최대값, 평균값, 중간값)\) 형태의 튜플(Tuple)로 결과를 반환해야 한다.

함수를 사용하는 코드

작성한 함수는 아래 코드와 함께 실행된다.

t = int(input())
for _ in range(t):
    line = input().strip()
    tokens = line.split()
    pos_args = []
    kw_args = {}
    for token in tokens:
        if '=' in token:
            k, v = token.split('=')
            kw_args[k] = int(v)
        else:
            pos_args.append(int(token))

    print(f(*pos_args, **kw_args))

위 코드가 정상적으로 동작하도록 함수를 직접 정의한다. 제출할 때는 작성한 함수의 정의 전체만 제출한다.

입력

첫째 줄에 테스트 케이스의 개수 \(T\)가 주어진다. (\(1 \le T \le 100\))

둘째 줄부터 \(T\)개의 줄에 걸쳐 각 테스트 케이스의 인자들이 공백으로 구분되어 주어진다.

각 테스트마다 인자는 적어도 1개이상 주어진다.

  • 값이 숫자 형태인 경우 위치 인자(\(args\))로 처리된다.
  • \(key=value\) 형태인 경우 키워드 인자(\(kwargs\))로 처리된다.

출력

각 테스트 케이스마다 함수 \(f()\)가 반환한 튜플을 한 줄에 하나씩 그대로 출력한다.

예제 입력 1

5
10
1 2 3 4 5
10 20 30
a=7 b=5
10 20 x=5 y=15

예제 출력 1

(10, 10, 10.0, 10)
(1, 5, 3.0, 3)
(10, 30, 20.0, 20)
(5, 7, 6.0, 7)
(5, 20, 12.5, 15)

코멘트

현재 작성된 코멘트가 없습니다.