2023. 11. 3. 15:49ใ์ธํ๋ฐ/์๋ฐ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด ์ ๋ฌธ : ์ฝ๋ฉํ ์คํธ ๋๋น
https://hyejin.tistory.com/1240
-> ์ด์ ๋ฌธ์ ํ์ด
2. ๋ฒ๋ธ ์ ๋ ฌ
์ค๋ช
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)
{
int idx = n;
while ( idx != 0)
{
idx--;
for (int i = 0; i < n - 1; i++)
{
if (arr[i] > arr[i + 1]) {
int tmp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = tmp;
}
}
}
return arr;
}
๐ฉ๐ป : ๋ฒ๋ธ ์ ๋ ฌ์ ๋ฐฐ์ด์์ ๋ฐ๋ก ์ (์ค๋ฅธ์ชฝ) ๊ฐ๊ณผ ๋น๊ตํด์ ์ค๋ฅธ์ชฝ ๊ฐ์ด ๋ ์์ผ๋ฉด ํ์ฌ ๊ฐ๊ณผ ๋น๊ตํ๋ฉด์ ์์ผ๋ก ๋์๊ฐ๋ฉฐ ์ ๋ ฌํ๋ ๋ฐฉ๋ฒ์ด๋ค.
idx ์ธ๋ฑ์ค ๊ฐ์ n ์ผ๋ก ์ค์ ํ๊ณ while ๋ฐ๋ณต๋ฌธ์ ๋๋๋ฐ ์ด๋ ์กฐ๊ฑด์ด 0์ด ๋์ง ์์ ๋ ๊น์ง ํ๋ ๊ฒ์ด๋ค.
(์ฆ, n ๋ฒ ๋ฐ๋ณตํ๋ ๊ฒ!)
ํ๋ฒ ๋ฐ๋ณตํ ๋ ๋ง๋ค, idx ๊ฐ์ด 1์ฉ ์ค์ด๋ค๊ฒ ํ๊ณ , ๊ทธ ๋ค์ for๋ฌธ์ ๋๋๋ฐ ์ด๋์๋ i๊ฐ n-1 ์ ๊น์ง ๋๋ฉด์
arr[i]์ arr[i + 1] ์ ๋น๊ตํด์ arr[i+1]์ด ๋ ์์ผ๋ฉด arr[i]๊ณผ ๊ฐ์ ๋ฐ๊พธ๋ฉด์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ๊ณ arr๋ฅผ ๋ฆฌํดํด์คฌ๋ค.
๋ฌธ์ ํ์ด 2
public int[] solution2(int n, int[] arr)
{
for (int i = 0; i < n - 1; i++) // i : ํด์ ํ์
{
for (int j = 0; j < n - i - 1; j++)
{
if (arr[j] > arr[j + 1]) {
int tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
}
}
}
return arr;
}
๐พ : ๊ฐ์ฌ๋์ while๋ฌธ์ด ์๋๋ผ ์ด์ค for๋ฌธ์ ํตํด์ ๋ฌธ์ ๋ฅผ ํ์๋ค.
์ฐ์ i๋ ํดํ๋ ํ์๋ฅผ ๋ํ๋ด๋๋ฐ, ์ฆ ๋ช๋ฒ ๋ฐ๋ณตํ๋๋ ์ด๋ค !
n - 1 ๋ฒ ํดํด๋ ๋๋ ์ด์ ๋ ๋๊ฐ๋ฅผ ๋น๊ตํ๋ฉด n๊น์ง i๊ฐ ๊ฐ ํ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
๊ทธ๋ฆฌ๊ณ j๋ n - i - 1 ๋ฒ ํ๋ฉด ๋๋๋ฐ j ๋ j + 1 ๊ฐ์ ๋น๊ตํ๊ธฐ ๋๋ฌธ์ ๋ง์ง๋ง๊ฐ์ ๋ง์ง๋ง ๊ฐ์ j -1 ์์ ๋น๊ต๋๊ธฐ ๋๋ฌธ์ด๋ค.
arr[j]๋ arr[j+1] ๋น๊ตํด์ arr[j+1]์ด ๋ ์์ผ๋ฉด arr[j]๊ณผ arr[j+1] ๊ฐ์ ๋น๊ตํด์ ๊ตํํด์ฃผ๋ฉด ๋๋ค.
๊ทธ๋ฌ๋ฉด ์ค๋ฆ ์ฐจ์์ผ๋ก ์ ๋ ฌ๋๊ณ arr๋ฅผ ๋ฆฌํดํ๋ฉด ๋๋ค !