2023. 11. 3. 09:34ใ์ธํ๋ฐ/์๋ฐ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด ์ ๋ฌธ : ์ฝ๋ฉํ ์คํธ ๋๋น
https://hyejin.tistory.com/1239
-> ์ด์ ๋ฌธ์ ํ์ด
1. ์ ํ ์ ๋ ฌ
์ค๋ช
N๊ฐ์ด ์ซ์๊ฐ ์ ๋ ฅ๋๋ฉด ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ์ฌ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ธ์.
์ ๋ ฌํ๋ ๋ฐฉ๋ฒ์ ์ ํ์ ๋ ฌ์ ๋๋ค.
์ ๋ ฅ
์ฒซ ๋ฒ์งธ ์ค์ ์์ฐ์ N(1<=N<=100)์ด ์ฃผ์ด์ง๋๋ค.
๋ ๋ฒ์งธ ์ค์ N๊ฐ์ ์์ฐ์๊ฐ ๊ณต๋ฐฑ์ ์ฌ์ด์ ๋๊ณ ์ ๋ ฅ๋ฉ๋๋ค. ๊ฐ ์์ฐ์๋ ์ ์ํ ๋ฒ์ ์์ ์์ต๋๋ค.
์ถ๋ ฅ
์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ๋ ์์ด์ ์ถ๋ ฅํฉ๋๋ค.
์์ ์ ๋ ฅ 1
6
13 5 11 7 23 15
์์ ์ถ๋ ฅ 1
5 7 11 13 15 23
๋ฌธ์ ํ์ด 1
public int[] solution(int n, int[] arr)
{
for (int i = 0; i < n; i++)
{
int idx = 0;
int min = Integer.MAX_VALUE;
for (int j = i ; j < n; j++)
{
if (arr[j] < min) {
min = arr[j];
idx = j;
}
}
int tmp = arr[i];
arr[i] = min;
arr[idx] = tmp;
}
return arr;
}
๐ฉ๐ป : ์ฐ์ ์ ํ ์ ๋ ฌ์ ์ด์ค for๋ฌธ์ ๋๋ฉด์ i ๊ฐ์ ๊ณ ์ ์ํค๊ณ ๊ทธ ๋ค์ j ๊ฐ ๋ฐฐ์ด์ ๋๋ฉด์ arr[i] ๊ณผ arr[j] ๋น๊ตํด์ ๋ ์์ ๊ฐ์ ์ธ๋ฑ์ค ๊ฐ์ idx ์ ์ ์ฅํ๋ค.
๊ทธ ๋ค์์ tmp ๋ณ์๋ฅผ ํ๋ ๋๊ณ , arr[i] ๊ฐ๊ณผ arr[idx] ๊ฐ์ ์๋ก ๊ตํํด์ฃผ๋ฉด ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ๋๋ค !
๋๋ min์ด๋ผ๋ ๋ณ์๋ ๋์ด์ ์ต์๊ฐ์ min์ ๋ฃ์ด์คฌ๋๋ฐ... idx ๊ฐ๋ง ์์ด๋ ๋๋๊ฑธ ์ด์ ์์๋ค ใ
๋ฌธ์ ํ์ด 2
public int[] solution2(int n, int[] arr)
{
for (int i = 0; i < n - 1; i++)
{
int idx = i;
for (int j = i + 1; j < n; j++)
{
if (arr[j] < arr[idx]) {
idx = j;
}
}
int tmp = arr[i];
arr[i] = arr[idx];
arr[idx] = tmp;
}
return arr;
}
๐พ : ๊ฐ์ฌ๋์ ์ด์ค for๋ฌธ์ ๋ ๋, i ๊ฐ์ 0 ๋ถํฐ n-1์ ๊น์ง๋ง ๋๊ฒ ํ๋ค. ์๋ํ๋ฉด i ๊ฐ ๊ตณ์ด n ๊น์ง ๊ฐ ํ์๊ฐ ์๊ธฐ ๋๋ฌธ !! (j๊ฐ ๋๋ฉด์ n ๊น์ง ๊ฐ๊ณ ๊ฐ์ ๋น๊ต ํ ๋ฐ๊ฟ ๊ฒ์ด๊ธฐ ๋๋ฌธ)
๊ทธ๋ฆฌ๊ณ j๋ i + 1 ๋ถํฐ n ๊น์ง ๋๋๋ฐ ์ด๋ idx ๊ฐ์ i ๊ฐ์ ์ ์ฅํด๋๋ค.
๊ทธ ๋ค์ arr[j] ์ arr[idx] ๊ฐ ์ค ๋ ์์ ๊ฐ์ idx ์ ์ธ๋ฑ์ค ๊ฐ์ ์ ์ฅํ๊ณ ,
๋๋ฒ์งธ ๋ฐ๋ณต๋ฌธ์ ๋ค ๋๊ณ ๋์ , tmp ๋ณ์๋ฅผ ๋์ด arr[i]์ arr[idx] ๊ฐ์ ์๋ก ๋ฐ๊ฟ์ฃผ๋ฉด
์ค๋ฆ์ฐจ์ ์ ๋ ฌ๋ก ๋๋ค !