반응형
이 문제는
1. 첫줄에 과목의 갯수
2. 두번째 줄에 과목별 점수가 공백을 기준으로 나타내져 있다.
3. 정답 출력값의 절대오차 또는 상대오차는 0^(-2), 즉 0.01 까지 허용한다.
4. 입력된 점수중 최대값을 찾고 각각의 과목들을 (과목/최대값)*100 처리를 한 후 나온 값들을 더해서 다시한번 과목의 갯수로 나눠 새로운 평균을 구해야한다.
첫번째 방법은 scanner를 이용한 방법이다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
package exam.array;
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
double [] array = new double[sc.nextInt()];
for (int i = 0; i < array.length; i++) {
array[i] = sc.nextDouble();
}
sc.close();
Arrays.sort(array);
double sum = 0;
for (int i = 0; i < array.length; i++) {
sum+= (array[i]/array[array.length-1]*100);
}
System.out.println(sum/array.length);
}
}
|
cs |
먼저 배열에 모든 원소를 입력받은 후 Arrays 패키지의 sort() 를 사용하여 정렬을 한다.
그러면 오름차순으로 정렬이 되고 최댓값은 배열의 마지막 원소가 간다.
오차범위가 있기 때문에 최소 자료형 1개 이상은 double 형으로 쓴다. 그러면 자동 형변환이 되면서 자료형이 큰 쪽으로 (int 에서 double) 변환이 된다.
두번째 방법은 bufferLeader를 이용한 방법이다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
package exam.array;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException{
// TODO Auto-generated method stub
BufferedReader br = new BufferedReader((new InputStreamReader(System.in)));
double[] array = new double[Integer.parseInt(br.readLine())];
StringTokenizer st1 = new StringTokenizer(br.readLine()," ");
for (int i = 0; i < array.length; i++) {
array[i] = Double.parseDouble(st1.nextToken());
}
double sum = 0;
Arrays.sort(array);
for (int i = 0; i < array.length; i++) {
sum += ((array[i]/array[array.length-1])*100);
}
System.out.println(sum/array.length);
}
}
|
cs |
BufferLeader는 String 으로 들어오기때문에 double 형으로 바꾸려면 Double.parseDouble() 을 사용해야한다.
또한 공백을 포함하여 들어오기 때문에 문자열 분리를 위해 StringTokenizer로 나눠준다.
반응형
'알고리즘 > 백준(BAEKJOON)' 카테고리의 다른 글
4673 셀프넘버 JAVA 백준 문제풀이 (0) | 2021.09.13 |
---|---|
1차원 배열 8958/자바/Scanner/BufferReader (0) | 2021.08.21 |
3052/백준/JAVA /1차원 배열/나머지 구하기/ HashSet (0) | 2021.03.08 |
10871/X보다 작은 수/자바 /백준 (0) | 2020.08.16 |
11021/백준/A+B-7/자바/for문 (0) | 2020.08.03 |