2023. 8. 16. 01:32ใ5. Algorithm
- ๋ฌธ์์ด ๋ด ๋ง์๋๋ก ์ ๋ ฌํ๊ธฐ
1. ๋ฌธ์ ์ค๋ช
๋ฌธ์์ด๋ก ๊ตฌ์ฑ๋ ๋ฆฌ์คํธ strings์, ์ ์ n์ด ์ฃผ์ด์ก์ ๋, ๊ฐ ๋ฌธ์์ด์ ์ธ๋ฑ์ค n๋ฒ์งธ ๊ธ์๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌํ๋ ค ํฉ๋๋ค. ์๋ฅผ ๋ค์ด strings๊ฐ ["sun", "bed", "car"]์ด๊ณ n์ด 1์ด๋ฉด ๊ฐ ๋จ์ด์ ์ธ๋ฑ์ค 1์ ๋ฌธ์ "u", "e", "a"๋ก strings๋ฅผ ์ ๋ ฌํฉ๋๋ค.
2. ์ ์ถ๋ ฅ ์

3. ์ ํ์ฌํญ
- strings๋ ๊ธธ์ด 1 ์ด์, 50์ดํ์ธ ๋ฐฐ์ด์ ๋๋ค.
- strings์ ์์๋ ์๋ฌธ์ ์ํ๋ฒณ์ผ๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
- strings์ ์์๋ ๊ธธ์ด 1 ์ด์, 100์ดํ์ธ ๋ฌธ์์ด์ ๋๋ค.
- ๋ชจ๋ strings์ ์์์ ๊ธธ์ด๋ n๋ณด๋ค ํฝ๋๋ค.
- ์ธ๋ฑ์ค 1์ ๋ฌธ์๊ฐ ๊ฐ์ ๋ฌธ์์ด์ด ์ฌ๋ฟ ์ผ ๊ฒฝ์ฐ, ์ฌ์ ์์ผ๋ก ์์ ๋ฌธ์์ด์ด ์์ชฝ์ ์์นํฉ๋๋ค
4. ์ ์ถ๋ ฅ ์ ์ค๋ช
์
์ถ๋ ฅ ์ 1
"sun", "bed", "car"์ 1๋ฒ์งธ ์ธ๋ฑ์ค ๊ฐ์ ๊ฐ๊ฐ "u", "e", "a" ์
๋๋ค. ์ด๋ฅผ ๊ธฐ์ค์ผ๋ก strings๋ฅผ ์ ๋ ฌํ๋ฉด ["car", "bed", "sun"] ์
๋๋ค.
์
์ถ๋ ฅ ์ 2
"abce"์ "abcd", "cdx"์ 2๋ฒ์งธ ์ธ๋ฑ์ค ๊ฐ์ "c", "c", "x"์
๋๋ค. ๋ฐ๋ผ์ ์ ๋ ฌ ํ์๋ "cdx"๊ฐ ๊ฐ์ฅ ๋ค์ ์์นํฉ๋๋ค. "abce"์ "abcd"๋ ์ฌ์ ์์ผ๋ก ์ ๋ ฌํ๋ฉด "abcd"๊ฐ ์ฐ์ ํ๋ฏ๋ก, ๋ต์ ["abcd", "abce", "cdx"] ์
๋๋ค.
[ ๋ด๊ฐํ ๋ฌธ์ ํ์ด ]
function solution(strings, n) {
strings.sort(function(a,b){
if(a[n] > b[n]) return 1;
if(b[n] > a[n]) return -1;
if(a > b) return 1;
if(b > a) return -1;
return 0;
});
return strings;
}
* ์ฃผ์์ถ๊ฐ
// solution์ด๋ผ๋ ํจ์์ strings์ n์ด๋ผ๋ ๋ ๊ฐ์ ๊ฐ์ ๋ฐ์ต๋๋ค.
function solution(strings, n) {
// strings๋ผ๋ ๋ฐฐ์ด์ sort๋ผ๋ ๋ฐฉ๋ฒ์ผ๋ก ์ ๋ ฌ.
strings.sort(function(a,b){
// a์ b์ n๋ฒ์งธ ๊ธ์๋ฅผ ๋น๊ตํฉ๋๋ค. ๋ง์ฝ a์ n๋ฒ์งธ ๊ธ์๊ฐ
//b์ n๋ฒ์งธ ๊ธ์๋ณด๋ค ๋ค์ ์์ผ๋ฉด 1์ ๋๋ ค์ค๋๋ค.a๊ฐ b๋ณด๋ค ๋ค์ ์ค๋๋กํจ.
if(a[n] > b[n]) return 1;
// b์ n๋ฒ์งธ ๊ธ์๊ฐ a์ n๋ฒ์งธ ๊ธ์๋ณด๋ค ๋ค์ ์์ผ๋ฉด -1์ ๋๋ ค์ค๋๋ค.b๊ฐ a๋ณด๋ค ๋ค์ ์ค๋๋กํจ.
if(b[n] > a[n]) return -1;
// ๋ง์ฝ a๊ฐ b๋ณด๋ค ๋ค์ ์์ผ๋ฉด 1์ ๋๋ ค์ค๋๋ค.
if(a > b) return 1;
// ๋ฐ๋๋ก b๊ฐ a๋ณด๋ค ๋ค์ ์์ผ๋ฉด -1์ ๋๋ ค์ค๋๋ค.
if(b > a) return -1;
// ๋ง์ฝ a์ b๊ฐ ๊ฐ๋ค๋ฉด 0์ ๋๋ ค์ค๋๋ค.
return 0;
});
return strings;
}
* sort ๋ฉ์๋ :
sort๋ฉ์๋๋ ๋ฐฐ์ด์ ์์๋ฅผ ์ ๋ ฌํ๋ ๋ฉ์๋์ ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ๋ฌธ์์ด์ ์ ๋์ฝ๋ ์์์ ๋ฐ๋ผ ์ ๋ ฌํฉ๋๋ค. ์ซ์๋ ๋ค๋ฅธ ํ์ ์ ์์๋ฅผ ์ ๋ ฌํ๋ ค๋ฉด ๋น๊ต ํจ์๋ฅผ ์ธ์๋ก ์ ๋ฌํด์ผ ํฉ๋๋ค
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/sort
Array.prototype.sort() - JavaScript | MDN
sort() ๋ฉ์๋๋ ๋ฐฐ์ด์ ์์๋ฅผ ์ ์ ํ ์์น์ ์ ๋ ฌํ ํ ๊ทธ ๋ฐฐ์ด์ ๋ฐํํฉ๋๋ค. ์ ๋ ฌ์ stable sort๊ฐ ์๋ ์ ์์ต๋๋ค. ๊ธฐ๋ณธ ์ ๋ ฌ ์์๋ ๋ฌธ์์ด์ ์ ๋์ฝ๋ ์ฝ๋ ํฌ์ธํธ๋ฅผ ๋ฐ๋ฆ ๋๋ค.
developer.mozilla.org
