반응형
츄르사려고 코딩하는 코집사입니다.
1. [SW expert Academy] SWEA 1984번 중간 평균값 구하기 자바(Java)
1) 난이도 : D2
2) 문제번호 : 1984번
3) 문제 출처
2. 문제
10개의 수를 입력 받아, 최대 수와 최소 수를 제외한 나머지의 평균값을 출력하는 프로그램을 작성하라.
(소수점 첫째 자리에서 반올림한 정수를 출력한다.)
3. 제약사항
- 각 수는 0 이상 10000 이하의 정수이다.
4. 입력
가장 첫 줄에는 테스트 케이스의 개수 T가 주어지고, 그 아래로 각 테스트 케이스가 주어진다.
각 테스트 케이스의 첫 번째 줄에는 10개의 수가 주어진다.
5. 출력
출력의 각 줄은 '#t'로 시작하고, 공백을 한 칸 둔 다음 정답을 출력한다.
(t는 테스트 케이스의 번호를 의미하며 1부터 시작한다.)
6. 풀이
- ArrayList를 선언하여 10개의 값을 받은 다음, 오름차순으로 정렬을 한다.
- 오름차순으로 정렬된 ArrayList에서 최솟값과 최댓값을 삭제한다.
- 여기서, 최솟값이 공통일 경우에는 그냥 1개만 지워도 된다.(좀 더 명확했으면 좋겠지만)
- ArrayList의 값들을 다 더하고, 평균을 내는데 반올림 하는 경우에는 Math.round()를 사용하면 된다.
- Math.round()는 double형으로 return을 해주기 때문에 뒤의 갯수에도 double형으로 형변환을 해줘야 한다.
7. 소스 코드
import java.util.*;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int T = sc.nextInt();
for(int tc=1;tc<=T;tc++) {
ArrayList<Integer> List = new ArrayList<>();
for(int i=0;i<10;i++) List.add(sc.nextInt());
Collections.sort(List);
List.remove(0);
List.remove(8);
int sum = 0;
double result = 0.0;
for(int i=0;i<List.size();i++) {
sum += List.get(i);
}
result = sum / (double)8;
double aver = Math.round(result);
System.out.printf("#%d %.0f\n",tc,aver);
}
}
}
반응형
'알고리즘 > SW expert Academy' 카테고리의 다른 글
[SW expert Academy] SWEA 3289번 서로소 집합 자바(Java) (0) | 2021.03.18 |
---|---|
[SW expert Academy] SWEA 11315번 오목 판정 자바(Java) (0) | 2021.02.24 |
[SW expert Academy] SWEA 4047번 영준이의 카드 카운팅 자바(Java) (0) | 2021.02.24 |
[SW expert Academy] SWEA 6808번 규영이와 인영이의 카드게임 자바(Java) (0) | 2021.02.17 |
[SW expert Academy] SWEA 5215번 햄버거 다이어트 자바(Java) - 비트마스크 풀이 (0) | 2021.02.17 |
[SW expert Academy] SWEA 1493번 수의 새로운 연산 자바(Java) (0) | 2021.02.16 |
[SW expert Academy] SWEA 11457번 gravity 자바(Java) (0) | 2021.02.14 |
[SW expert Academy] SWEA 7272번 안경이 없어! 자바(Java) (0) | 2021.02.13 |
최근댓글