백준

백준 2822 점수 계산(Java)

Park DJ 2023. 1. 22. 03:21

https://www.acmicpc.net/problem/2822

 

2822번: 점수 계산

8개 줄에 걸쳐서 각 문제에 대한 참가자의 점수가 주어진다. 점수는 0보다 크거나 같고, 150보다 작거나 같다. 모든 문제에 대한 점수는 서로 다르다. 입력으로 주어지는 순서대로 1번 문제, 2번 문

www.acmicpc.net


 

해석 및 팁

 


 

이 문제는 배열을 2개 만들어서 하나는 정렬하여 가장 높은 점수 5개의 합을 구하고 남은 배열은 인덱스 번호를 구하면 됩니다. Arrays.sort를 사용하면 내림차순으로 정렬되므로 큰 값 5개의 범위는 3부터 8입니다.

 


 

Java 코드

 


import java.util.Scanner;
import java.util.Arrays;
import java.util.Collections;

public class Main {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    
    int[] arr = new int[8];
    int[] check = new int[8];
    int sum = 0;
    
    for(int i = 0; i < 8; i++) {
      arr[i] = sc.nextInt();
      check[i] = arr[i];
    }
    Arrays.sort(arr);

    for(int i = 3; i < 8; i++) sum += arr[i];
    
    System.out.println(sum);

    for(int i = 0; i < 8; i++) {
      for(int j = 3; j < 8; j++) {
        if(check[i] == arr[j]) System.out.print((i + 1)+" ");
      }
    }
    
  }
}