์•Œ๊ณ ๋ฆฌ์ฆ˜ & ๋ฌธ์ œํ’€์ด/Programmers-1

๋ฌธ์ž์—ด ๋‚ด ๋งˆ์Œ๋Œ€๋กœ ์ •๋ ฌํ•˜๊ธฐ

YunCow 2022. 8. 24. 20:19

๋ฌธ์ œ๋‚ด์šฉ

ํ’€์ด ๐Ÿ™‍โ™‚๏ธ

function solution(strings, n) {
  strings.sort((secondArg, firstArg) => {
    if (secondArg[n] < firstArg[n]) return -1;
    if (secondArg[n] === firstArg[n]) {
      if (secondArg < firstArg) return -1;
    }
  });

  return strings;
}

/*
(ํ’€์ด)
๋ฌธ์ž์—ด์ด ๋“ค์€ strings๋ฐฐ์—ด์„ sort๋ฉ”์†Œ๋“œ๋ฅผ ์ด์šฉํ•ด ์ธ์ž๋กœ ์ต๋ช…ํ•จ์ˆ˜๋ฅผ ๋„ฃ์€ ๋’ค 
if๋ฌธ์„ ์ด์šฉํ•ด ์˜ค๋ฆ„์ฐจ์ˆœ(์ž‘์€์ˆ˜ -> ํฐ์ˆ˜)์ด๋ฏ€๋กœ firstArg[n] ์ด secondArg[n] ๋ณด๋‹ค ํด ๊ฒฝ์šฐ ๋ฐฐ์—ด์˜ ์œ„์น˜๋ฅผ ๋ณ€๊ฒฝํ•˜๋„๋ก -1์„ ๋ฐ˜ํ™˜ํ•˜๊ณ 
๋‘˜์˜ ๊ฐ’์ด ๋™์ผํ•  ๊ฒฝ์šฐ if๋ฌธ์„ ํ•œ๋ฒˆ ๋” ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์ž์—ด ์ž์ฒด๋ฅผ ๋น„๊ตํ•ด firstArg๊ฐ€ ํฌ๋ฉด -1์„ ๋ฆฌํ„ดํ•˜๋„๋ก ๋งŒ๋“ค์—ˆ๋‹ค.
์ „์ฒด์ ์œผ๋กœ ์–ด๋ ค์› ๊ณ  ์ œํ•œ ์กฐ๊ฑด์— ๊ฐ’์ด ๊ฐ™์„๊ฒฝ์šฐ ์‚ฌ์ „์ˆœ์œผ๋กœ ์•ž์„  ๋ฌธ์ž์—ด์ด ์•ž์ชฝ์œผ๋กœ ์œ„์น˜ํ•œ๋‹ค๋Š” ๋ง์ด n์˜ ๋‹ค์Œ์ธ๋ฑ์Šค์˜ ์‚ฌ์ „์ˆœ์ธ์ค„ ์•Œ๊ณ  ๊ณ ์ƒํ–ˆ๋‹ค..
๋ฌธ์ œ๋„ ํ™•์‹คํ•˜๊ฒŒ ์ดํ•ดํ•ด์•ผ ํ’€ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์˜€๋‹ค.
*/
  • ์ด๋ฒˆ ๋ฌธ์ œ๋Š” sort๋ฅผ ๊นŠ๊ฒŒ ๋“ค์–ด๊ฐ€ ์ดํ•ดํ•˜๋ ค๋‹ˆ ์ƒ๊ฐ๋ณด๋‹ค ํ›จ์”ฌ ์–ด๋ ค์› ๋‹ค.
  • ๋ฌธ์ œ๋ฅผ ์ž˜ ํŒŒ์•…ํ•˜๋„๋ก ๋…ธ๋ ฅํ•˜์ž.
  • localeCompare ๋ผ๋Š” ๋ฉ”์†Œ๋“œ๋ฅผ ์ด์šฉํ•˜๋ฉด ํ•œ์ค„๋กœ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. ( ํŒ€ ๋ฆฌ๋”๋‹˜ ํ’€์ด )
function solution(strings, n) {
  return strings.sort(compareFunction);

  function compareFunction(a, b) {
    return a[n] === b[n] ? a.localeCompare(b) : a[n].localeCompare(b[n]);
  }
}