
Published 2022. 7. 18. 11:57
/*
๋ฌธ์ ์ค๋ช
๋ฌธ์์ด๋ก ๊ตฌ์ฑ๋ ๋ฆฌ์คํธ strings์, ์ ์ n์ด ์ฃผ์ด์ก์ ๋, ๊ฐ ๋ฌธ์์ด์ ์ธ๋ฑ์ค n๋ฒ์งธ ๊ธ์๋ฅผ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌํ๋ ค ํฉ๋๋ค. ์๋ฅผ ๋ค์ด strings๊ฐ ["sun", "bed", "car"]์ด๊ณ n์ด 1์ด๋ฉด ๊ฐ ๋จ์ด์ ์ธ๋ฑ์ค 1์ ๋ฌธ์ "u", "e", "a"๋ก strings๋ฅผ ์ ๋ ฌํฉ๋๋ค.
์ ํ ์กฐ๊ฑด
strings๋ ๊ธธ์ด 1 ์ด์, 50์ดํ์ธ ๋ฐฐ์ด์
๋๋ค.
strings์ ์์๋ ์๋ฌธ์ ์ํ๋ฒณ์ผ๋ก ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
strings์ ์์๋ ๊ธธ์ด 1 ์ด์, 100์ดํ์ธ ๋ฌธ์์ด์
๋๋ค.
๋ชจ๋ strings์ ์์์ ๊ธธ์ด๋ n๋ณด๋ค ํฝ๋๋ค.
์ธ๋ฑ์ค 1์ ๋ฌธ์๊ฐ ๊ฐ์ ๋ฌธ์์ด์ด ์ฌ๋ฟ ์ผ ๊ฒฝ์ฐ, ์ฌ์ ์์ผ๋ก ์์ ๋ฌธ์์ด์ด ์์ชฝ์ ์์นํฉ๋๋ค.
*/
const solution = (str, n) => {
str.sort((a, b) => {
// sort ๋ฉ์๋๋ฅผ ์ด์ฉํด a[n]๋ฒ์งธ ์์์ b[n]๋ฒ์งธ ์์๋ฅผ ๋น๊ตํด
if (a[n] > b[n]) {
// a[n]์ด b[n] ๋ณด๋ค ํฌ๋ค๋ฉด ์ธ๋ฑ์ค์์ +1 ํ์ฌ ์ค๋ฆ์ฐจ์ ์ ๋ ฌ
return 1;
} else if (b[n] > a[n]) {
// b[n]์ด a[n] ๋ณด๋ค ํฌ๋ค๋ฉด ์ธ๋ฑ์ค์์ -1 ํ์ฌ ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ
return -1;
} else {
// ๋ ๊ฒฝ์ฐ๋ ์๋๋ผ๋ฉด ์ผํญ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํด a, b ์ ์ฒด๊ฐ์ ๋น๊ตํด a๊ฐ ํฌ๋ฉด ์ค๋ฆ์ฐจ์, b๊ฐ ํฌ๋ฉด ๋ด๋ฆผ์ฐจ์ ์ ๋ ฌ ์คํ
return a > b ? 1 : -1;
}
});
return str;
};
console.log(solution(['sun', 'bed', 'car'], 1));
console.log(solution(['abce', 'abcd', 'cdx'], 2));
๋งจ์ฒ์์๋ map ๋ฉ์๋์ sort ๋ฉ์๋๋ฅผ ์ฌ์ฉํด๋ดค๋๋ฐ, ์๊ฐ๋๋ก ๋์ง ์์ sort ๋ฉ์๋์ if ๋ฌธ์ ๋ถ์ด๋๊ฑธ๋ก ํด๊ฒฐํ๋ค.