์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ/BOJ_Java

[BOJ/Step12] 2750 : ์ˆ˜ ์ •๋ ฌํ•˜๊ธฐ (JAVA)

NaNaRin๐Ÿ™ƒ 2021. 1. 24. 17:25

www.acmicpc.net/problem/2750

 

2750๋ฒˆ: ์ˆ˜ ์ •๋ ฌํ•˜๊ธฐ

์ฒซ์งธ ์ค„์— ์ˆ˜์˜ ๊ฐœ์ˆ˜ N(1 โ‰ค N โ‰ค 1,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์—๋Š” ์ˆซ์ž๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ด ์ˆ˜๋Š” ์ ˆ๋Œ“๊ฐ’์ด 1,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ •์ˆ˜์ด๋‹ค. ์ˆ˜๋Š” ์ค‘๋ณต๋˜์ง€ ์•Š๋Š”๋‹ค.

www.acmicpc.net


๋ฌธ์ œ

N๊ฐœ์˜ ์ˆ˜๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ด๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

 

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— ์ˆ˜์˜ ๊ฐœ์ˆ˜ N(1 โ‰ค N โ‰ค 1,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์—๋Š” ์ˆซ์ž๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ด ์ˆ˜๋Š” ์ ˆ๋Œ“๊ฐ’์ด 1,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ •์ˆ˜์ด๋‹ค. ์ˆ˜๋Š” ์ค‘๋ณต๋˜์ง€ ์•Š๋Š”๋‹ค.

 

์ถœ๋ ฅ

์ฒซ์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์— ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ ๊ฒฐ๊ณผ๋ฅผ ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ์ถœ๋ ฅํ•œ๋‹ค.

 

์˜ˆ์ œ ์ž…๋ ฅ 

5 5 2 3 4 1

 

์˜ˆ์ œ ์ถœ๋ ฅ 

1 2 3 4 5


ํ’€์ด

์‹œ๊ฐ„๋ณต์žก๋„๊ฐ€ O(n^2)์ธ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ํ’€๋ผ๊ณ  ๋ช…์‹œ

=> ๋ฒ„๋ธ” ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜

=> ์„ ํƒ ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜

=> ์‚ฝ์ž… ์ •๋ ฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜

java
๋‹ซ๊ธฐ
import java.util.Scanner; public class B2750 { โ€Œ โ€Œstatic void swap(int[] a, int idx1, int idx2) { โ€Œโ€Œint t = a[idx1]; โ€Œโ€Œa[idx1] = a[idx2]; โ€Œโ€Œa[idx2] = t; โ€Œ} โ€Œ โ€Œstatic void bubbleSort(int[] a, int n) { โ€Œโ€Œfor(int i = 0; i < n-1; i++) { โ€Œโ€Œโ€Œfor(int j = 0; j < n-i-1; j++) { โ€Œโ€Œโ€Œโ€Œif(a[j] > a[j+1]) { โ€Œโ€Œโ€Œโ€Œโ€Œswap(a, j, j+1); โ€Œโ€Œโ€Œโ€Œ} โ€Œโ€Œโ€Œ} โ€Œโ€Œ} โ€Œ} โ€Œ โ€Œstatic void selectionSort(int[] a, int n) { โ€Œโ€Œfor(int i = 0; i < n-1; i++) { โ€Œโ€Œโ€Œint min = i; โ€Œโ€Œโ€Œfor(int j = i+1; j < n; j++) { โ€Œโ€Œโ€Œโ€Œif(a[j] < a[min]) { โ€Œโ€Œโ€Œโ€Œโ€Œmin = j; โ€Œโ€Œโ€Œโ€Œ} โ€Œโ€Œโ€Œ} โ€Œโ€Œโ€Œswap(a, i, min); โ€Œโ€Œ} โ€Œ} โ€Œ โ€Œstatic void insertionSort(int[] a, int n) { โ€Œโ€Œfor(int i = 1; i < n; i++) { โ€Œโ€Œโ€Œint j; โ€Œโ€Œโ€Œint tmp = a[i]; โ€Œโ€Œโ€Œfor(j = i; j > 0 && a[j-1] > tmp; j--) { โ€Œโ€Œโ€Œโ€Œa[j] = a[j-1]; โ€Œโ€Œโ€Œ} โ€Œโ€Œโ€Œa[j] = tmp; โ€Œโ€Œ} โ€Œ} โ€Œ โ€Œpublic static void main(String[] args) { โ€Œโ€ŒScanner sc = new Scanner(System.in); โ€Œโ€Œ โ€Œโ€Œint n = sc.nextInt(); โ€Œโ€Œint[] sort = new int[n]; โ€Œโ€Œ โ€Œโ€Œfor(int i = 0; i < n; i++) { โ€Œโ€Œโ€Œsort[i] = sc.nextInt(); โ€Œโ€Œ} โ€Œโ€Œ โ€Œโ€ŒbubbleSort(sort, n); // ๋ฒ„๋ธ” ์ •๋ ฌ โ€Œโ€Œ//selectionSort(sort, n); // ์„ ํƒ ์ •๋ ฌ โ€Œโ€Œ//insertionSort(sort, n); // ์‚ฝ์ž… ์ •๋ ฌ โ€Œโ€Œ โ€Œโ€Œfor(int i = 0; i < n; i++) { โ€Œโ€Œโ€ŒSystem.out.println(sort[i]); โ€Œโ€Œ} โ€Œ} }