문제 번호 25305번 : 커트라인 - JAVA [자바]
728x90
https://www.acmicpc.net/problem/25305
문제 설명
간단하게 수를 정렬하여 두번째 입력값 번째의 수를 찾아내는 문제입니다.
문제 풀이
해당 문제는 버블 정렬을 사용해서 풀도록 하겠습니다.
삽입 정렬에 대한 내용은 버블 정렬을 참고해주세요.
정렬에 대한 이해가 있다면 어렵지 않은 문제일 것입니다.
import java.util.Scanner;
public class Number_25305 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int k = sc.nextInt();
int[] array = new int[n];
for(int i=0; i<array.length; i++){
array[i] = sc.nextInt();
}
//선택 정렬
bubble_sort(array);
System.out.println(array[k-1]);
}
public static void bubble_sort(int[] array){
/*
* 시작을 i로 1기준을 잡는다.
* i는 저장한 원소를 비교하지 않게 하는 역할을 한다.
*/
for(int i=1; i<array.length; i++){
boolean flag = false;//교환이 이루어진지 확인하는 변수
//저장한 원소를 제외하고 첫 원소부터 차례대로 비교한다.
for(int j=0; j<array.length-i; j++){
//비교한 후 교환
if(array[j] < array[j+1]){
swap(array,j,j+1);
flag = true;//교환이 아루어짐
}
}
//교환이 이루어지지 않았다면 반복 종료
if(flag == false){
break;
}
}
}
public static void swap(int[] array, int i, int min){
int temp = array[i];
array[i] = array[min];
array[min] = temp;
}
}
조심해야 할 것은 내림차순이 아닌 오름차순으로 정려한 후에 문제를 풀어야 한다는 것입니다.
'알고리즘 > 백준 문제 및 정답' 카테고리의 다른 글
문제 번호 10989번 : 수 정렬하기 3 - JAVA [자바] (0) | 2023.03.02 |
---|---|
문제 번호 2751번 : 수 정렬하기 2 - JAVA [자바] (0) | 2023.02.27 |
문제 번호 2787번 : 대표값2 - JAVA [자바] (0) | 2023.02.22 |
문제 번호 2750번 : 수 정렬하기 - JAVA [자바] (0) | 2023.02.15 |
문제 번호 24060번 : 병합 정렬 1 - JAVA [자바] (0) | 2023.01.21 |