[백준]1427번 소트인사이드-버블정렬

김윤지·2022년 10월 4일
0

JAVA

목록 보기
10/10

이 문제도 sort() 함수를 사용하면 편하겠지만!
아쉽게도 버블정렬로 풀어야함..ㅎㅎ....

생각한 풀이
입력한 문자열을 substring을 이용해서 자른 후, 정수로 배열에 담는다.
그 후 배열을 버블 정렬을 통해 내림차순으로 정렬한다.(참고)

package Practice;

import java.util.Scanner;

public class Practice17 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String str = sc.next();
		
		// 2. 문자열 길이로 정수배열 생성하기
		int[] arr = new int[str.length()];
		
		// 3. 문자열의 각 문자 정수로 배열에 저장하기
		for(int i=0; i<str.length(); i++) {
			arr[i] = str.charAt(i) - '0';
		}
		
		// 4. 배열 내림차순 정렬하기
		for(int i =0; i<arr.length-1; i++) { 
			int lastExchangeNum = 0;
			int lastExchangeIndex = 0;
			for(int j = arr.length-1; j > i; j--) {
				if(arr[j] > arr[j-1]) {
					int tmp = arr[j];
					arr[j] = arr[j-1];
					arr[j-1] = tmp;
					lastExchangeNum++;
					lastExchangeIndex = j-1;
				}
			}
			if(lastExchangeNum == 0) break;
			else i = lastExchangeIndex; 
		}
		
		StringBuilder sb = new StringBuilder();
		for( int value : arr) {
			sb.append(value);
		}
		System.out.println(sb.toString());
		sc.close();
	}
}

내용 추가 예정

profile
Java, Javascript, python, DB

0개의 댓글