Goorm - ๋ฒ„๋ธ”์ •๋ ฌ ๐Ÿ‘€

Dev-Oยท2021๋…„ 12์›” 30์ผ
0

CodingTest

๋ชฉ๋ก ๋ณด๊ธฐ
4/18

๋ฒ„๋ธ”์ •๋ ฌ


๋ฌธ์ œ์„ค๋ช…


ํ•ด์„ค

  • ๋ฒ„๋ธ”์ •๋ ฌ ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.
  • ์ •๋ ฌ์— ์ข…๋ฅ˜๊ฐ€ ์—ฌ๋Ÿฌ๊ฐ€์ง€๊ฐ€ ์žˆ๋Š”๋ฐ ํ—ท๊ฐˆ๋ฆด๊นŒ๋ด ๋ฒ„๋ธ”์ •๋ ฌ์ด ์–ด๋–ค ์ •๋ ฌ์ธ์ง€ ์•Œ์•„๋‘๊ธฐ

1. ๊ฐœ๋…

  • ์ธ์ ‘ํ•œ ์›์†Œ๋ผ๋ฆฌ ๋น„๊ตํ•ด์„œ ์ •๋ ฌํ•˜๋Š” ๋ฐฉ๋ฒ•

2. ํŠน์ง•

  • ์ถ”๊ฐ€์ ์ธ ๊ณต๊ฐ„ ํ•„์š” x -> ์ œ์ž๋ฆฌ์ •๋ ฌ
  • ๋ฐ์ดํ„ฐ ๋น„๊ต -> ๋น„๊ต์ •๋ ฌ

3. ๋ฐฉ๋ฒ•

  • ์•ž์—์„œ๋ถ€ํ„ฐ ๋‹ค์Œ ์›์†Œ ๋น„๊ต
    • ํ˜„์žฌ ์›์†Œ๊ฐ€ ๋‹ค์Œ ์›์†Œ ๋ณด๋‹ค ํฌ๋ฉด ๊ตํ™˜ -> ์˜ค๋ฆ„์ฐจ์ˆœ ๊ธฐ์ค€์œผ๋กœ ๊ฐ€์žฅ ํฐ ์›์†Œ๊ฐ€ ๋งจ ๋’ค๋กœ ๊ฐ€๊ฒŒ ๋œ๋‹ค.
    • ๋๋‚˜๋ฉด ๋‹ค์‹œ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋-1 ๊นŒ์ง€ ๋ฐ˜๋ณต -> ๊ฐ€์žฅํฐ์›์†Œ๋ฅผ ๋์— ๋’€๊ธฐ ๋•Œ๋ฌธ
  • ๊ทธ๋ฆผ์„ค๋ช…

4. ์‹œ๊ฐ„๋ณต์žก๋„

  • O(N2) : ๋ฐ˜๋ณต๋ฌธ์„ ๋‘๋ฒˆ ์“ฐ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ด๋ฏธ ์ •๋ ฌ์ด ๋์–ด๋„ ๊ณ„์† ๋น„๊ตํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
  • O(N) : ์ตœ์„ ์œผ๋กœ ์ค„์ธ๊ฒฝ์šฐ์ด๋‹ค. ์ •๋ ฌ๋งŒ ์™„๋ฃŒ๋˜๋ฉด ๋ฐ˜๋ณต๋ฌธ์„ ๋๋‚ด๋ฒ„๋ฆฐ๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๊ฒฐ๊ตญ ๋ฐ˜๋ณต๋ฌธ ํ•˜๋‚˜์— ์ˆ˜๋ ดํ•˜๊ธฐ ๋•Œ๋ฌธ์— O(N)์ด ๋œ๋‹ค.
public class Bubblesort {

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String input = br.readLine();
		String[] temp = br.readLine().split(" ");
		int[] arr = new int[temp.length]; 
		for(int i = 0 ; i< temp.length ; i++) arr[i] = Integer.parseInt(temp[i]);
		bubbleSort(arr);
	}
	
	public static void bubbleSort(int[] arr) {
		int tempVar = 0;
		for(int i = 0; i < arr.length-1 ; i++) {
			boolean flag = true;//์ •๋ ฌ์ด ์™„๋ฃŒ๋˜๋ฉด ๋ฐ˜๋ณต๋ฌธ์„ ๋๋‚ผ ํ‘œ์‹
			for(int j = 0 ; j<arr.length-1-i ; j++) {
				if(arr[j]>arr[j+1]) {//์•ž์ด ๋’ค๋ณด๋‹ค ํฌ๋ฉด
					tempVar=arr[j];
					arr[j] = arr[j+1];
					arr[j+1] = tempVar;//๊ฐ’ ๋ฐ”๊ฟ”์ฃผ๊ธฐ
					flag = false;//ํ•œ๋ฒˆ์ด๋ผ๋„ ์ž๋ฆฌ๊ตํ™˜์„ ํ•ด์ฃผ๋ฉด ์•„์ง ์ •๋ ฌ์ด ์•ˆ๋œ๊ฒƒ..	
				}
			}
			if(flag) break;//ํ•œ๋ฒˆ๋„ ์ž๋ฆฌ๊ตํ™˜์„ ์•ˆํ•ด์ฃผ๋ฉด ๊ทธ๋Œ€๋กœ true์ผ๊ฒƒ. ๊ทธ๋Ÿผ ์ข…๋ฃŒ
		}
		for(int i = 0; i<arr.length;i++) {
			System.out.print(arr[i]+" ");
		}
	}

}
profile
Being Outstanding needs Understanding๐Ÿš€

0๊ฐœ์˜ ๋Œ“๊ธ€