문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 ["sun", "bed", "car"]이고 n이 1이면 각 단어의 인덱스 1의 문자 "u", "e", "a"로 strings를 정렬합니다.
strings | n | return |
---|---|---|
["sun", "bed", "car"] | 1 | ["car", "bed", "sun"] |
["abce", "abcd", "cdx"] | 2 | ["abcd", "abce", "cdx"] |
function solution(strings, n) {
var answer = [];
// 1
for(var i =0; i < strings.length; i++)
{
strings[i] = strings[i][n] + strings[i];
// car -> a + car -> acar
}
// 2.
strings.sort();
// 3.
for(var j = 0; j< strings.length; j++)
{
strings[j] = strings[j].replace(strings[j][0],"");
answer.push(strings[j]);
}
return answer;
}
strings.length를 사용해서 문자열 길이만큼 돌린다.
strings[i]
는 문자열을 나타냄.
strings[i][n]
은 문자열의 0번째
, 1번째
, 2번째
로 분리해야한다
그러니까 strings[i]가 car
라고 한다면
strings[i][0] = c
strings[i][1] = a
strings[i][2] = r
이렇게 된다. 그리고 나서 +strings[i]를 다시 붙여줘야 정렬가능
sort()는 알아서 오름차순으로 정렬해준다
strings.sort();
1️⃣번에서 이미 strings[i][n] 했던 것을 지워줘야 하므로
replace(바꿀요소, 어떻게 바꿀것인가)
strings.replace(strings[j][0],"");
맨 앞에 붙인것을 바꾼다 = ""를 사용해서 빈값으로 바꾼다 = 제거
그리고 push를 사용해서 제거된 strings[j]를 넣어서 출력