이 문제는 정렬하기인데, 시간복잡도 O(n^2)이므로 삽입정렬 or 버블정렬로 문제를 해결하면 좋다.

 

package 주말스터디;

import java.util.Scanner;

public class 수정렬하기 {

	public static void swap(int x[], int index1, int index2) {

		if (x[index1] > x[index2]) { // 위치 바꿔주기
			int temp = x[index1];
			x[index1] = x[index2];
			x[index2] = temp;
		}

	}

	public static void bubbleSort(int x[], int n) { // 정렬하기

		for (int i = 0; i < n - 1; i++) {
			for (int j = 0; j < n - i - 1; j++) {
				swap(x, j, j + 1);
			}
		}

		print(x, n);

	}

	public static void print(int x[], int n) { // 출력하기

		for (int i = 0; i < n; i++) {
			System.out.println(x[i]);
		}
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		Scanner scan = new Scanner(System.in);

		int n = scan.nextInt(); // 첫번째 줄 몇개 입력받을지
		
		int data[] = new int[n]; 
		
		for (int i = 0; i < n; i++)
			data[i] = scan.nextInt();

		수정렬하기.bubbleSort(data, n);
	}

}

 

아직  메소드 사용이 익숙하지가 않은데, 계속 메소드를 활용하며 풀어봐야겠다.

 

'알고리즘 문제 풀이' 카테고리의 다른 글

[백준 알고리즘] C# 운동 1173번  (0) 2021.07.22
[4344번] 평균은 넘겠지  (0) 2020.01.10
[3052번] 나머지  (0) 2020.01.07
[2920번] 음계  (0) 2020.01.06
[1427번] : 소트인사이드  (0) 2019.10.11

+ Recent posts