🔍 문제
- 문자열로 구성된 리스트 strings와, 정수 n이 주어졌을때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정리
- 해당 인덱스 값이 여럿일 경우 사전순으로 앞선 문자열이 앞쪽으로 위치한다.
⌨️ 입출력 예시
strings | n | return |
['sun', 'bed', 'car'] | 1 | ['car', 'bed', 'sun'] |
['abce', 'abcd', 'cdx'] | 2 | ['abcd', 'abce', 'cdx'] |
🙋♀️ 내가 푼 방식
1. 인덱스 n에 해당되는 배열의 값 추출한다.
2. 해당 값들을 문자열 앞에 붙여준다.
3. 사전순으로 정렬 .sort()
4. 앞글자 떼기
// 최종 리턴 값
let answer = [];
// 해당 값들을 문자열 앞에 붙여준 값들의 배열.
let newStrArr = [];
function sortFunc(strArr, n) {
strArr.forEach((str) => {
// 1. 인덱스 n에 해당되는 배열의 값 추출한다. str[n]
// 2. 해당 값들을 문자열 앞에 붙여준다.
// str -> sun, bed, car
// str[1] -> u, e, a
// str = str[n] + str -> 'usun', 'ebed', 'acar'
str = str[n] + str;
// 합친 값들을 새로운 배열에 넣어줌
newStrArr.push(str);
// 3. 사전순으로 정렬 .sort()
newStrArr.sort();
});
// 4. 앞글자 떼기
// 문자열 앞에 붙여준 값들에게 접근
newStrArr.forEach((nStr) => {
// 앞글자 뗀 값들을 반환 시켜줄 answer 배열에 넣어줌
answer.push(nStr.substr(1));
});
console.log(answer);
return answer;
}