문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때,
각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하세요.
풀다가 도저히 모르겠어서 풀이 영상을 보았다,,
function solution(strings, n) {
let result = [];
for (let i = 0; i < strings.length; i++) {
strings[i] = strings[i][n] + strings[i];
}
strings.sort();
for(let j = 0; j < strings.length; j ++) {
strings[j] = strings[j].replace(strings[j][0],"");
result.push(strings[j]);
}
return result;
}
문자열에 n번째 글자를 앞에 붙여 배열을 만든 후, 오름차순으로 정렬한 후에
앞 글자를 지워주었다.
function solution(strings, n) {
return strings.sort((s1, s2) =>
s1[n] === s2[n] ? s1.localeCompare(s2) : s1[n].localeCompare(s2[n]));
}
// localeCompare
// : -1인 경우, 왼쪽에 있는 문자열이 순서가 빠름 / 1인 경우, 오른쪽에 있는 문자열이 순서가 빠름 / 0인 경우, 같음
// 대소문자도 구분 가능 (sensitivity)
// localeCompare(str, 'en', {sensitivity : 'base' or 'case'})
// base -> 대소문자 구분X / case -> 대소문자 구분
다들 어떻게 이렇게 간단하게 코드를 작성하는지..
오늘은 문제를 풀지 못하였지만 아직 코딩 공부한지 얼마 되지 않았다는 생각을 하면서,
풀지 못하였어도 다른 코드를 보면서 이런 경우에는 어떤 걸 사용해야하는지,
다른 문제가 나왔을 때도 이걸 생각하며 활용할 수 있도록!
차라리 모르는 건 다른 풀이들을 보면서 공부하는 게 지금은 나에게 더 도움이 될꺼라고 생각한다.
모르는 공부해서 알면 되는거니까@!