20210114 // 삼성 SW Expert 아카데미 // 1984

2021. 1. 14. 17:31Programming/SW Expert Academy

삼성 SW Expert 아카데미 1984번 "중간 평균값 구하기" 문제입니다.

TC = int(input())
for tc in range(1, TC+1):
    lst = list(map(int, input().split()))
    lst.sort()
    lst.pop(0)
    lst.pop()
    k = round(sum(lst)/len(lst))
    print("#%s"%tc, k)

리스트를 입력받고 그 리스트의 최대 최소값을 제외한 값들의 평균값을 구하는 문제이다.

 

위 문제는 max, min 함수를 활용할 수도 있겠지만 나는 sort 메서드를 이용해서 정렬을 한다.

 

그 다음에 pop이라는 메서드를 사용하여 최대 최소 값을 제거한다. pop(index)는 index에 위치한 값을 리스트에서 제외하는 메서드인데

 

pop() 처럼 인자를 넣지 않을 경우 리스트의 마지막 인덱스 값을 제외한다. sort() 는 기본적으로 오름차순으로 리스트를 정렬하는데

 

lst.pop()으로 최댓값을 제외하고 lst.pop(0)으로 최소값으로 제외한다. 그 후 round 함수를 활용하여 정수 형태로 출력한다.