プログラマコードテスト練習<任意の配列文字列>


🔎 <文字列内で任意にソート>



📝 答案用紙


今からコードテストの練習を始めて、私の恥ずかしい答えと他の人の答えを見てみましょう.

🚩 提出した答え

function solution(strings, n) {
  var answer = [];

  answer = strings.sort((a, b) => {
    if (a[n] !== b[n]) {
      return a.charCodeAt(n) - b.charCodeAt(n);
    } else {
      return a.localeCompare(b);
    }
  });

  return answer;
}
与えられたインデックス内の文字が異なる場合、その文字のUTF−16コードはcharCodeAt()によって比較され、同じ場合、localeCompare()を辞書順に並べ替えたコールバック関数を有するsort()によって並べ替えられる.

主な使用法

charCodeAt() , localeCompare() , sort()

🚩 他人の答え


localeCompare()と条件の3つの演算子を使用した答え

function solution(strings, n) {
  // strings 배열
  // n 번째 문자열 비교
  return strings.sort((s1, s2) => s1[n] === s2[n] ? s1.localeCompare(s2) : s1[n].localeCompare(s2[n]));
  // n번째 문자가 같으면, 해당 단어를 비교하고, 다르면 그 문자를 비교한다.
}
n文字目が同じ場合は、条件3つの演算子を構成して単語を比較し、異なる場合は対応する文字を比較することができます.

📌 学習のポイント


localeCompare()


localeCompare()メソッドは、基準文字列と比較して、比較対象文字列がソート前、後、または同じ順序で並べられているかを示す数値を返します.これにより、辞書順に並べ替えられます.

条件3項演算子


条件3項演算子조건 ? 참인 경우 : 거짓인 경우を使用して、コードをより簡潔に整理することができる.