[Lv.1]文字列内で任意に並べ替えます(✩✩)-質問
15019 ワード
質問:https://programmers.co.kr/learn/courses/30/lessons/12915
体感難易度:
alphaオブジェクトに数字を合わせる 文字列のn番目のアルファベットをalphaオブジェクトのキーで検索し、その値の数値を検索します. 変数obj,{3:[「abce」,「abcd」,24:[「cdx」};こうやって作る objを迂回し、結果配列にobj値の配列要素を含む.
配列に2つ以上の要素がある場合は、アルファベット順に並べます. は、の結果を返します. 法1−nは、各文字列のゲルの前に第1のアルファベットを貼り合わせる.
(nで並べ替えます.nが同じ場合、後の文字は同時に並べ替えられます.) sortメソッドの使用方法が不明です.(質問)
体感難易度:
🔶 私のやり方
配列に2つ以上の要素がある場合は、アルファベット順に並べます.
function solution(strings, n) {
const alpha = {a: 1, b: 2, c: 3, d: 4, e: 5, f: 6, g: 7, h: 8, i: 9, j: 10, k: 11, l: 12, m: 13, n: 14, o: 15, p: 16,
q: 17, r: 18, s: 19, t: 20, u: 21, v: 22, w: 23, x: 24, y: 25, z: 26 };
// 1. { 3: ['abce', 'abcd'], 24: ['cdx'] }; 이렇게 만들기
const obj = {};
strings.forEach((el) => {
const number = alpha[el[n]];
if (obj[number]) {
obj[number] = [...obj[number], el];
return;
}
obj[number] = [el];
});
// 2. 같은 순서 있으면 문자순으로 정렬하여 결과값 배열로 출력.
const result = [];
for (const [key, value] of Object.entries(obj)) {
value.sort();
result.push(...value);
}
return result;
}
console.log(solution(['sun', 'bed', 'car'], 1)); // ["car", "bed", "sun"]
console.log(solution(['abce', 'abcd', 'cdx'], 2)); // ["abcd", "abce", "cdx"]
🔶 他人のやり方
(nで並べ替えます.nが同じ場合、後の文字は同時に並べ替えられます.)
function solution(strings, num) {
const arr = strings.map((el) => el[num] + el); // ['cabce', 'cabcd', 'xcdx']
arr.sort(); // ['cabcd', 'cabce', 'xcdx']
return arr.map((el) => el.slice(1));
}
方法2-sort使用110 sort使用方法の問題! function solution(strings, n) {
var answer = [];
strings.sort((a,b)=>{
if(a[n]>b[n]){
return 1
} else if(b[n]>a[n]){
return -1
} else if(a[n]==b[n]){
if(a>b){
return 1
} else if(a<b){
return -1
} else{
return 0
}
}
})
return strings
}
🔶 フィードバック
Reference
この問題について([Lv.1]文字列内で任意に並べ替えます(✩✩)-質問), 我々は、より多くの情報をここで見つけました https://velog.io/@jhplus13/Lv.1-문자열-내-마음대로-정렬하기-질문テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol