[붙끝코] 백준 2947번

Burpeeeee·2024년 9월 14일
post-thumbnail

📌 문제 탐색하기

input

  • 1~5번 사이의 숫자가 하나씩 적혀있는 랜덤한 순서의 5개의 나무 조각
  • input은 1,2,3,4,5 가 아님

output

  • 두 조각의 순서가 바뀔때 마다 조각의 순서를 출력한다.( 첫번째>두번째 순서 바꿈, 두번째>세번째 순서바꿈...)

📌 코드 설계하기

  • 비교는 1번과 2번,2번과 3번,3번과 4번,4번과 5번 비교횟수가 4번으로 전해져 있음.
  • 인접한 두 수끼리의 비교 -> 버블 정렬

📌 시도 회차 수정 사항

  1. sorted = true; 를 조건에 넣지 않아서 1회전 비교밖에 안되고 출력됐다.

📌 정답 코드

package day6;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.Comparator;
import java.util.StringTokenizer;

public class BJ_2947 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb= new StringBuilder();
        int [] arr= new int [5];

        // 입력
        StringTokenizer st = new StringTokenizer(br.readLine());
        for(int i=0;i<5;i++){
            arr[i] = Integer.parseInt(st.nextToken());
        }
        // 버블 정렬
        boolean sorted;
        do {
            sorted = false;
            for (int i = 1; i < 5; i++) {
                if (arr[i - 1] > arr[i]) {
                    int tmp = arr[i - 1];
                    arr[i - 1] = arr[i];
                    arr[i] = tmp;
                    sorted = true;
                    for (int j = 0; j < 5; j++) sb.append(arr[j]).append(' ');
                    sb.append('\n');
                }
            }
        } while (sorted);
        System.out.print(sb);

    }
    }


profile
? 이 가득하지만 곧 !이 될

0개의 댓글