https://www.acmicpc.net/problem/2822
정렬 알고리즘만 알면 되는 간단한 문제다.
score 배열과 점수의 번호인 num 배열을 만들어 score배열을 정렬할 때 num배열도 같이 움직여 주었다.
그 뒤 num배열을 인덱스 0부터 4까지만 오름차순으로 정렬을 해주면 된다.
package problem_solved;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class n2822 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int[] score= new int[8];
int[] num=new int[8];
int sum=0;
for(int i=0;i<score.length;i++) {
score[i] = Integer.parseInt(br.readLine());
num[i]=i+1;
}
for(int i=0;i<score.length;i++) {
for(int j=i+1;j<score.length;j++) {
if(score[j]>score[i]) {
swap(score,i,j);
swap(num,i,j);
}
}
}
StringBuilder str= new StringBuilder();
for(int i=0;i<5;i++) {
for(int j=i+1;j<5;j++) {
if(num[j]<num[i]) {
swap(num,i,j);
}
}
}
for(int i=0;i<5;i++) {
sum+=score[i];
str.append(num[i]+" ");
}
bw.write(String.valueOf(sum)+"\n"+str);
bw.flush();
br.close();
bw.close();
}
public static void swap(int[] arr, int a, int b) {
int temp=arr[a];
arr[a]=arr[b];
arr[b]=temp;
}
}