1. Array.prototype.sort() ๋ฉ์๋ ์ค๋ช ๊ณผ ์์
2. Leetcode 1366. Rank Teams by Votes ๋ฌธ์ ํ์ด
Array.prototype.sort([compareFunction])
.sort()๋ ๋ฐฐ์ด์ ์์๋ค์ in-place๋ก ์ ๋ ฌํด์ฃผ๋ ๋ฉ์๋์ด๋ค. ์ ๋ ฌ๋ ๋ณต์ฌ๋ณธ์ด ๋ง๋ค์ด์ง๋ ๊ฒ์ด ์๋๋ผ, ์ ๋ฐฐ์ด์ด ์ ๋ ฌ๋๋ค๋ ๋ป์ด๋ค.
์์๋ค์ string์ผ๋ก ๋ณํํ๊ณ ํด๋น ์ํธ์ค๋ด ๋จ์์ UTF-16 ์ฝ๋ ๊ฐ์ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ๋ ๊ฒ์ด ๊ธฐ๋ณธ ์ ๋ ฌ ๋ฐฉ์์ด๋ค. ๋ฐ๋ผ์ string์ด ๋ค์ด์๋ ๋ฐฐ์ด์ ๊ธฐ๋ณธ ์ ๋ ฌํ๋ฉด ์ฌ์ ์์ผ๋ก ์ ๋ ฌ๋๋ค.
๊ธฐ๋ณธ ์ ๋ ฌ ๋ฐฉ์ ์ด์ธ์ ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ์ ๋ ฌ์ ํ๊ณ ์ถ๋ค๋ฉด, ์ง์ ์ธ์์ ์ํ๋ ๋์์ ํ๋ ๋น๊ตํจ์๋ฅผ ์ ๋ ฅํ๋ฉด๋๋ค.
- (a, b) => -1: ๋น๊ตํจ์ ๋ฐํ ๊ฐ์ด 0๋ณด๋ค ์์ผ๋ฉด a๊ฐ b๋ณด๋ค ๋จผ์ ์จ๋ค.
- (a, b) => 1: ๋น๊ตํจ์ ๋ฐํ ๊ฐ์ด 0๋ณด๋ค ํฌ๋ฉด b๊ฐ a๋ณด๋ค ๋จผ์ ์จ๋ค.
- (a, b) => 0 : ๋น๊ตํจ์ ๋ฐํ ๊ฐ์ด 0์ด๋ฉด a์ b์ ์์น๋ฅผ ๋ณ๊ฒฝํ์ง ์๋ ๋์๋ ์์ง๋ง, ์ด ๋์์ ECMAscript ํ์ค์์ ๋ณด์ฅํ์ง ์๋๋ค.
ํ๊ฐ ์ด์์ ์กฐ๊ฑด์ ๊ฐ์ง๊ณ ์ ๋ ฌ์ ํด์ผํ ๋๋ ์๋ค.
์ค๋ ํผ 1366. Rank Teams by Votes ์์๋ ์ฌ๋ฌ ์กฐ๊ฑด์ ๊ฐ์ง๊ณ ์ ๋ ฌ์ ํด์ผํ๋ค.
- ์ ์๋ฅผ ๋ ์ ๋ฐ์ ์์๊ฐ ์์ ์จ๋ค.
- ์ด๋ฐ ์ ์๋ C๊ฐ ์๋ค. 1๋ฒ ์ ์๊ฐ ๋์ ์ด๋ฉด 2๋ฒ ์ ์๋ฅผ ํตํด ์์๋ฅผ ์ ํ๋ค.
- C๋ฒ ์ ์๊น์ง ๋ชจ๋ ๋์ ์ด๋ฉด ์ํ๋ฒณ ์์๋๋ก ์ ๋ ฌํ๋ค.
for๋ฌธ์ ํตํด C๊ฐ์ ์ ์๋ฅผ ๋น๊ตํด๋ณด๊ณ ๋ชจ๋ ๋์ ์ด๋ฉด, ๋ฐ๋ณต๋ฌธ์ ๋น ์ ธ๋์ ์ํ๋ฒณ ์ฌ์ ์์ผ๋ก ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ๋ค. ์ฌ๊ธฐ์์ a์ b๋ char ํ์ ์ด๋ค.
์ํ๋ฒณ ์ ์ค๋ฆ์ฐจ์ ์ ๋ ฌํ๊ธฐ
- (a, b) => a < b ? -1 : 1
- JS๋ ๋น๊ต์ฐ์ฐ์๋ก ์ฌ์ ์ string ํฌ๊ธฐ๋น๊ต๊ฐ ๊ฐ๋ฅํ๋ค.
- a๊ฐ b๋ณด๋ค ์ฌ์ ์ ์์๊ฐ ์์ชฝ์ด๋ฉด a๊ฐ ์์ผ๋ก ์ค๋๋ก -1์ ๋ฐํ.
- ๊ทธ๋ ์ง ์์ผ๋ฉด b๊ฐ ์์ผ๋ก์ค๋๋ก 1์ ๋ฐํํ๋ค.