320x100
10개의 수를 입력받으면서 모든 수를 더한다.
입력 받은 값들 중 최소 값, 최대 값을 구한다.
10개 수를 모두 더했으면 더한 값에서 최소 값, 최대 값을 빼준다. 그리고 8을 나눈다. (최소, 최대 값 빠졌으므로 8개임)
이 때 실수값으로 계산을해야 소수점 첫째 자리를 구할 수 있다.
구한 값에 + 0.5를 한다. (반올림)
그리고 정수화 해주면 정답이 된다. (정수화하면 소수점들은 모두 없어지므로)
시간복잡도는 O(T).
처음에는 최소와 최대가 같은 경우 다르게 처리해줘야 하지 않나.(최소, 최대값이 같은 경우 2개의 수가 아닌 1개의 수만 제외될수도 있다고 생각했기 때문에)라는 생각도 들었었는데 좀 더 생각해보면 별 상관이 없다.
수가 10개를 입력받기 때문에 최소와 최대가 같은 경우는 10개의 수가 모두 같은 경우이기 때문이다.
이 경우도 앞에서 설명한 것과 마찬가지로 최소, 최대 2개 값을 제외하고 8개 수의 평균 값을 구하면 정답이 된다.
소스코드 : https://gist.github.com/fpdjsns/6228f82f3e959a5beb46e2c1bb7b4cd8
320x100
'알고리즘 문제 > SW Expert Academy' 카테고리의 다른 글
[SW Expert Academy] 1247. [S/W 문제해결 응용] 3일차 - 최적 경로 (0) | 2019.01.08 |
---|---|
[SW Expert Academy][2819] 격자판의 숫자 이어 붙이기 (0) | 2019.01.05 |
[SW Expert Academy][1206] View (0) | 2019.01.05 |
[SW Expert Academy][2047] 신문 헤드라인 (0) | 2019.01.03 |
댓글