문제 번호 2787번 : 대표값2 - JAVA [자바]
728x90
https://www.acmicpc.net/problem/2587
문제 설명
간단하게 수를 정렬하여 중간값을 찾고 평군을 내는 문제입니다.
문제 풀이
해당 문제는 삽입정렬을 사용해서 풀도록 하겠습니다.
삽입 정렬에 대한 내용은 삽입 정렬 참고해주세요.
정렬에 대한 이해가 있다면 어렵지 않은 문제일 것입니다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] array = new int[5];
for(int i=0; i<5; i++){
array[i] = sc.nextInt();
}
//평균값
int avg = (array[0] + array[1] + array[2] + array[3] + array[4])/5;
insert_sort(array);
System.out.println(avg);
System.out.println(array[2]);
}
public static void insert_sort(int[] array){
for(int i=1; i<array.length; i++){
int target = array[i];//타겟
int j = i-1;//타겟과 비교될 인덱스
/*
* 비교될 인덱스가 0번까지 모두 비교되었거나
* 타겟이 더 큰 값이 되지 전까지 반복
*/
while(j >= 0 && target < array[j]){
//타겟이 더 큰값이 아닐경우 비교 인덱스를 뒤로 미룬다
array[j + 1] = array[j];
j--;//비교 인덱스를 줄인다.
}
/*
* 반복문이 종료되었다면 j+1과 j는 같은 값을 가지고 있다.
* j+1에 타겟값을 넣어주어 올바른 정렬을 만들어준다.
*/
array[j+1] = target;
}
}
}
'알고리즘 > 백준 문제 및 정답' 카테고리의 다른 글
문제 번호 2751번 : 수 정렬하기 2 - JAVA [자바] (0) | 2023.02.27 |
---|---|
문제 번호 25305번 : 커트라인 - JAVA [자바] (0) | 2023.02.23 |
문제 번호 2750번 : 수 정렬하기 - JAVA [자바] (0) | 2023.02.15 |
문제 번호 24060번 : 병합 정렬 1 - JAVA [자바] (0) | 2023.01.21 |
문제 번호 25501번 : 재귀의 귀재 - JAVA [자바] (0) | 2022.12.15 |