728x90
๋ฐ์ํ
๐ 06 - ์ฅ๋๊พธ๋ฌ๊ธฐ ํ์
ํ์์ ์ง๊ฟ์ด ์๋ฆฌ๋ฅผ ๋ฐ๊พผ ๋ฐ ํ์๋ค์ ์ผ๋ ฌ๋ก ์์๋ ํค ์ ๋ณด๊ฐ ์ฃผ์ด์ง ๋ ํ์๊ฐ ๋ฐ์ ๋ฒํธ์ ํ์ ์ง๊ฟ์ด ๋ฐ์ ๋ฒํธ๋ฅผ ์ฐจ๋ก๋๋ก ์ถ๋ ฅํ๋ ๋ฌธ์ ์ด๋ค.
๋์ ํ์ด ๋ฐฉ๋ฒ (โ)
์ ํ๋ ธ์๊นโ ๋ฐ ํ์๋ค์ ํค ์ ๋ณด๊ฐ ์ฃผ์ด์ง ๋ ํ์์ ๊ฐ์ ํค๊ฐ ์๋ ๊ฒฝ์ฐ ๋ฐ๋ก๊ฐ ์๊ธด๋ค.
- for ๋ฌธ์ ๋๋ฉด์ i + 1 ๋ณด๋ค i ๊ฐ ํฐ ๊ฒฝ์ฐ๋ฅผ ์ฐพ๋๋ค. i + 1์ด ํ์๊ฐ ๋ฐ์ ๋ฒํธ๊ฐ ๋๋ค.
- ์ ๋ ฌ์ ํ ํ indexOf() ํจ์๋ฅผ ์ด์ฉํด ์๋ ํ์๊ฐ ๋ฐ์์ผํ๋ ๋ฒํธ๋ฅผ ์ฐพ๋๋ค. ์ด ๋ฒํธ๊ฐ ํ์ ์ง๊ฟ์ด ๋ฐ์ ๋ฒํธ์ด๋ค.
๐ ๊ฐ์ฌ๋ ํ์ด ๋ฐฉ๋ฒ
๋ฐฐ์ด์ ๋ณต์ฌํ๋ ๋ฐฉ๋ฒ์๋ ์ฌ๋ฌ๊ฐ์ง๊ฐ ์์ง๋ง ์ฌ๊ธฐ์์๋ Array.from(arr)๊ณผ arr.slice()๋ฅผ ์๊ฐํด์ฃผ๊ณ ์๋ค. ๋จ, 1 ๋ ๋ฒจ(1์ฐจ์ ๋ฐฐ์ด)์ ๋ํด์๋ ๊น์ ๋ณต์ฌ๊ฐ ํ์ฉ๋๋ 2 ๋ ๋ฒจ(2์ฐจ์ ๋ฐฐ์ด)์ด์ ๋ถํฐ๋ ๊น์ ๋ณต์ฌ๊ฐ ๋์ง ์๋๋ค.
- ๋ฐฐ์ด์ ๋ณต์ฌํ ํ ์ ๋ ฌ์ ํ๋ค.
- for ๋ฌธ์ ๋๋ฉด์ ๊ธฐ์กด์ ๋ฐฐ์ด๊ณผ ์๋ก ๋ณต์ฌํ ๋ฐฐ์ด์ ๋น๊ตํ์ฌ ๊ฐ์ด ๊ฐ์ง ์์ ๊ฒฝ์ฐ answer ๋ฐฐ์ด์ ์ถ๊ฐํ๋ค.
๐ ํ์ด
// ๋์ ํ์ด ๋ฐฉ๋ฒ
function solution(arr) {
let answer = [];
let hyeonsu;
for (let i = 0; i < arr.length; i++) {
if (arr[i] > arr[i + 1]) {
answer.push(i + 1);
hyeonsu = arr[i];
break;
}
}
arr.sort((a, b) => a - b);
answer.push(arr.indexOf(hyeonsu) + 1);
return answer;
}
let arr = [120, 130, 150, 150, 130, 150];
console.log(solution(arr));
// ๊ฐ์ฌ๋ ํ์ด ๋ฐฉ๋ฒ
function solution(arr) {
let answer = [];
// let sortArr = Array.from(arr).sort((a, b) => a - b);
let sortArr = arr.slice().sort((a, b) => a - b);
for (let i = 0; i < arr.length; i++) {
if (arr[i] !== sortArr[i]) answer.push(i + 1);
}
return answer;
}
let arr = [120, 130, 150, 150, 130, 150];
console.log(solution(arr));
'Algorithm > ์ธํ๋ฐ(inflearn)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JavaScript/section 7] 08 - ํ์์ค ๋ฐฐ์ (0) | 2022.10.07 |
---|---|
[JavaScript/section 7] 07 - ์ขํ ์ ๋ ฌ (0) | 2022.10.06 |
[JavaScript/section 7] 05 - LRU (0) | 2022.10.05 |
[JavaScript/section 7] 04 - ์ฝ์ ์ ๋ ฌ (0) | 2022.10.03 |
[JavaScript/section 7] 03 - Special Sort(๊ตฌ๊ธ ์ธํฐ๋ทฐ) (0) | 2022.10.02 |