BOJ_2947_나무조각_JAVA
문제 : 나무조각
링크 : BOJ_2947_나무조각
접근 방식
버블정렬을 구현하면 되는 문제이다.
버블정렬을 구현하는데, 각 스텝별로 출력해가면서 구현하면 된다.
풀이 방법
-
5개의 값을 입력받아서 배열에 저장한다.
-
버블정렬을 직접 구현하여 1번 스와핑이 일어날 때마다 배열의 상태를 출력해준다.
-
정렬이 완료되면 프로그램을 종료한다.
소스 코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class BOJ_2947_나무조각 {
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(in.readLine()," ");
int[] arr = new int[5];
arr[0] = Integer.parseInt(st.nextToken());
arr[1] = Integer.parseInt(st.nextToken());
arr[2] = Integer.parseInt(st.nextToken());
arr[3] = Integer.parseInt(st.nextToken());
arr[4] = Integer.parseInt(st.nextToken());
while(true) {
for(int i=0;i<5;i++) {
if(i+1 >=5)continue;
if(arr[i] > arr[i+1]) {
swap(arr,i,i+1);
System.out.printf("%d %d %d %d %d\n",arr[0],arr[1],arr[2],arr[3],arr[4]);
}
}
int cnt = 0;
for(int i=0;i<5;i++) {
if(arr[i] != i+1) {
break;
}
cnt++;
}
if(cnt == 5) return;
}
}
public static void swap(int[] arr, int a, int b) {
int temp = arr[a];
arr[a] = arr[b];
arr[b] = temp;
}
}