[TIL] 문자열 내마음대로 정렬하기

sooyoung choi·2023년 10월 17일
0

algorithm

목록 보기
3/10
post-thumbnail

🔍  문제

 - 문자열로 구성된 리스트 strings와, 정수 n이 주어졌을때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정리

 - 해당 인덱스 값이 여럿일 경우 사전순으로 앞선 문자열이 앞쪽으로 위치한다.



⌨️ 입출력 예시

stringsnreturn
['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;
}

0개의 댓글