반응형
츄르사려고 코딩하는 코집사입니다.
1. [SW expert Academy] SWEA 1984번 중간 평균값 구하기 자바(Java)
1) 난이도 : D2
2) 문제번호 : 1984번
3) 문제 출처
SW Expert Academy
SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!
swexpertacademy.com
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 |
최근댓글