실제 자신의 성적의 최댓값 M을 이용하여 모든 과목 점수에 점수/M*100을 계산하여 조작된 성적을 만드는 문제이다.
첫 줄에서 총 몇 과목이었는지 N이 주어지고, 둘째줄에서 각 과목의 실제성적이 주어지면 그 중 최댓값을 선별하여 조작된 성적값을 산출하면 된다. 그리고 이렇게 조작된 성적으로 새로운 과목평균점수를 산출하는 문제이다.
먼저 첫번째줄에서 과목의 갯수 N을 입력받아 저장한다. 이 때 Scanner를 사용해도 무관하지만, 처리시간 상 BufferedReader를 쓰는 것이 더 낫다.
두 번째 줄에서 입력받은 각 과목의 성적들은 띄어쓰기로 구분된 한 줄 짜리 데이터이므로, StringTokenizer를 이용해 공백을 기준으로 각 토큰으로 나누어 저장한다. 그리고 직전에 입력받아놓은 과목의 갯수 N개만큼 반복문을 돌려 score배열에 토큰에 저장되어있는 점수들을 한개씩 저장한다.
Arrays.sort() 메소드를 이용하여 배열 안의 숫자들을 오름차순 정렬하면 배열의 가장 마지막 값이 최댓값이 되도록 할 수 있다. 이제 실제점수/최댓값*100 의 형식으로 점수들을 조작해야 하므로, 반복문을 돌려 조작된 점수로 계산한 후 그 값들이 모두 sum변수에 더하여 조작된 점수의 합을 계산한다.
그리고 이 조작된 합계점수를 과목 수 N 으로 나누어주면 해결!
'코딩테스트 연습' 카테고리의 다른 글
[백준] 8958번 - OX퀴즈 (JAVA) (0) | 2022.02.07 |
---|---|
[백준] 4344번 - 평균은 넘겠지 (JAVA) (0) | 2022.02.07 |
[백준] 2562번 - 최댓값 (JAVA) (0) | 2022.02.07 |
[백준] 2577번 - 숫자의 갯수 (JAVA) (0) | 2022.02.05 |
[백준] 10818번 - 최소, 최대 (JAVA) (0) | 2022.02.05 |