728x90
๐ section07 - 3 - Special Sort(๊ตฌ๊ธ ์ธํฐ๋ทฐ)
๋ฌธ์ : ์์ ์ ์๋ ์์ชฝ์ ์์ ์ ์๋ ๋ค์ชฝ์ ์์ด์ผ ํ๋ค. ์ด๋, ์์ ์ ์์ ์์ ์ ์์ ์์๋ ๋ณํจ์ด ์์ด์ผ ํ๋ค. GeeksforGeeks์์ ๊ด๋ จ ๋ฌธ์ ๋ฅผ ๊ฐ์ ธ์๋ค. ์์ด๋ก ํ๊ณ ์ถ์ผ๋ฉด ์ฌ์ดํธ์ ๋ค์ด๊ฐ์ ํธ๋๊ฒ์ ๊ถ์ฅํ๋ค. ์ด ๋ฌธ์ ๋ฅผ ํ๋ 2๊ฐ์ง ๋ฐฉ๋ฒ์ด ๋ ์ฌ๋๋ค.
- ํ ๊ฐ๋
for
๋ฌธ์ ๋๋ฉด์ ์์ ๋จผ์ answer
์push
ํ๊ณ ๋for
๋ฌธ์ ๋๋ฉด์ ์์๋ฅผanswer
์push
ํ๋ ๋ฐฉ๋ฒ - ๋ฒ๋ธ ์ ๋ ฌ ๋ฐฉ์์ ์ผ๋ถ๋ฅผ ๊ฐ์ ธ์์
j
๊ฐ ์์์ด๊ณj+1
์ด ์์๋ฉดswap
ํ๋ ๋ฐฉ๋ฒ
์๊ฐ ๋ณต์ก๋๋ 1๋ฒ(O(N)
)์ผ๋ก ๋ ๋น ๋ฅด์ง๋ง ๋ง์ฝ, ์ฝ๋ฉ ์ธํฐ๋ทฐ๋ฅผ ํ ๋ ์ ๋ ฌ์ ์ด์ฉํด์ ํ์ด๋ณด๋ผ๊ณ ํ ๋๋ 2๋ฒ(O(N^2)
)์ ์ด์ฉํ๋ฉด ๋๋ค.
728x90
// 1๋ฒ ๋ฐฉ๋ฒ let n = 8; let arr = [1, 2, 3, -3, -2, 5, 6, -6]; console.log(solution(n, arr)); ๐๐ฝ [ -3, -2, -6, 1, 2, 3, 5, 6 ] function solution(n, arr){ let answer = []; for (let x of arr){ if (x<0) answer.push(x); } for (let x of arr){ if (x>0) answer.push(x); } return answer }
// 2๋ฒ ๋ฐฉ๋ฒ let n = 8; let arr = [1, 2, 3, -3, -2, 5, 6, -6]; console.log(solution(n, arr)); ๐๐ฝ [ -3, -2, -6, 1, 2, 3, 5, 6 ] function solution(n, arr){ for (let i=0; i<n-1; i++){ for (let j=0; j<n-i-1; j++){ if (arr[j]>0 && arr[j+1]<0) [arr[j], arr[j+1]] = [arr[j+1], arr[j]] } } return arr; }
๋ฐ์ํ
๋๊ธ