1. 문제
2. 접근방법
버블 정렬을 문제로 만든 것 같다.
크게 어려울 것 없이 시키는데로 앞뒤 비교 후 기준에 안맞으면 swap을 하고
swap이 한번도 이루어 지지 않았다면 반복을 종료하면 된다.
단 출력을 swap이 이뤄질때 마다 해야한다는 점에 주의하자.
3. 자바 코드
package Silver;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.StringTokenizer;
public class P2947나무조각 {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int arr[] = new int[5];
for(int i = 0 ; i < 5 ; i++)
arr[i] = Integer.parseInt(st.nextToken());
boolean swap = true;
ArrayList<String> result = new ArrayList<String>();
while(swap) {
swap = false;
for(int i = 0 ; i < 4 ; i++) {
if(arr[i] > arr[i+1]) {
arr[i] = arr[i+1] ^ arr[i] ^(arr[i+1] = arr[i]);
String S = "";
for(int j = 0 ; j < 5 ; j++)
S += arr[j] +" ";
result.add(S);
swap = true;
}
}
}
for(int i = 0 ; i < result.size() ; i++)
System.out.println(result.get(i));
}
}
4. 마치며
버블 정려얼
'알고리즘 문제풀이 > 백준' 카테고리의 다른 글
[백준] 1946 신입사원 (1) | 2021.04.08 |
---|---|
[백준] 1748 수 이어 쓰기1 (0) | 2021.03.15 |
[백준] 1138 한 줄로 서기 (0) | 2021.03.15 |
[백준] 2847 게임을 만든 동준이 (1) | 2021.03.05 |
[백준] 14725 개미굴 (1) | 2021.02.26 |