๐ section07 - 1 - ์ ํ์ ๋ ฌ
์ด๋ฒ ์น์ ์ ์ ๋ ฌ(sort), ๊ทธ๋ฆฌ๋(greedy), ๊ฒฐ์ ์๊ณ ๋ฆฌ์ฆ์ ๋ํด์ ๋ฐฐ์ด๋ค.
๋ธ๋ก๊ทธ์ ๋ฐ๋ก ๊ฒ์ํ์ง ์์์ง๋ง ์ด์ ์ ์ข
์ข
์ฝ์
์ ๋ ฌ
, ์ ํ์ ๋ ฌ
, ๋ณํฉ์ ๋ ฌ
, ๋ฒ๋ธ์ ๋ ฌ
, ํต์ ๋ ฌ
์ฝ๋ ๊ตฌํ๊น์ง ๊ณต๋ถํ๋๋ฐ, ํญ์ ์ ๋ ฌ ๋ฌธ์ ๋ฅผ ํ ๋๋ง๋ค ์๋ง์ ์ ๋ ฌ ์ฝ๋๋ฅผ ๊ตฌํํ๋ ค๊ณ ํ๋ฉด ๊น๋จน๋๋ค. ๐
๐
์ด๋ฒ ์น์
์ ํ๋ฉด์ ์ธ์ ์ด๋ค ์ ๋ ฌ์ ์ฌ์ฉํด์ผ ํ๋์ง ์ ์์๋ฌ์ผ๊ฒ ๋ค. ์ ํ ์ ๋ ฌ์ ๊ดํ ์งง์ ์์์ ์ ํ์ ๋ ฌ 5๋ถ๋ง์ ์ดํดํ๊ธฐ - ์ฝ๋ฉํ๋๊ฑฐ๋ ๊ฐ์ธ์ ์ผ๋ก ์ด ๋ถ ์์์ด ๊ธธ์ง ์๊ณ ํต์ฌ๋ง ๊ฐ๋ฅด์ณ์ฃผ๋ ์์์ด์ด์ ์ข์๋ค.
์ ํ ์ ๋ ฌ์ ๊ฐ์ฅ ์์ ์ซ์๋ฅผ ์ฐจ๋ก๋๋ก ํ์ํ์ฌ ๊ฐ์ฅ ์ผ์ชฝ ์๋ฆฌ๋ถํฐ swap
ํ๋ ์ ๋ ฌ์ด๋ค. ์ด์ค ๋ฐ๋ณต๋ฌธ์ผ๋ก ์ ์ฒด ์์๋ฅผ ํ์ํ๊ณ ๋๋ณด๋ค ์์ ๊ฐ์ด ์์ผ๋ฉด ๋ ๊ฐ์ ์์น๋ฅผ ์๋ก ๋ฐ๊พธ๋ ์ ๋ ฌ์ด๋ค. ์๊ฐ ๋ณต์ก๋๋ O(N^2)
์ด๊ณ , ์ต์ ์ ๊ฒฝ์ฐ(์ ๋ ฌ๋์ด์๋ ๊ฒฝ์ฐ)์๋ ์๊ด์์ด ์์๋ฅผ ๋ชจ๋ ๋น๊ตํ๋ฏ๋ก ๋ง์ฐฌ๊ฐ์ง๋ก O(N^2)
์ ์๊ฐ ๋ณต์ก๋๋ฅผ ๋ํ๋ธ๋ค.
(์ถ์ฒ: VisuAlgo)
// ๋์ ์ฝ๋(j๋ฒ ๋ชจ๋ ๋ฐ๊พธ๋ ๋ฐฉ๋ฒ)
let n = 6;
let arr = [6, 5, 4, 3, 2, 1];
console.log(solution(n, arr));
function solution(n, arr) {
for (let i=0; i<n-1; i++) {
for (let j=i+1; j<n; j++) {
if (arr[i]>arr[j]) {
let temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
return arr;
}
// ๊ฐ์ ์ฝ๋(j๋ฒ ์์์ idx๋ฅผ ๊ฐฑ์ ํ์ฌ ํ๋ฒ์ ๋ฐ๊พธ๋ ๋ฐฉ๋ฒ)
let n = 6;
let arr = [6, 5, 4, 3, 2, 1];
console.log(solution(n, arr));
function solution(n, arr) {
for (let i=0; i<n-1; i++) {
let idx=i;
for (let j=i+1; j<n; j++) {
if (arr[i] > arr[j]) idx = i;
}
[arr[i], arr[idx]] = [arr[idx], arr[i]];
}
return arr;
}
๋๊ธ