[LeetCode] Sorting the Sentence

준규·2022년 11월 21일
0

sentence 라는 문자열이 주어지는데 이 문자열은 하나의 공백으로 구분이 되어있다고 한다.

공백으로 구분된 문자뒤에는 각각 원래 위치의 인덱스 번호(1부터 시작하는)가 붙어있는 상태로 문자열의 순서가 바뀐다고 한다.

이런 상황에서 올바른 순서대로 문자들을 정렬하고 순서 번호는 없는 상태로 리턴해야하는 문제이다.

Example을 보자

각각 단어들 뒤에 원래 순서 번호가 붙어져 있는 상태로 주어지고, 주어진 순서대로 단어들을 재배치 한 다음 숫자를 떼서 리턴하면 되는 문제이다.

const sortSentence = function (s) {
  const sentence = s.split(" ");
  const result = [];

  sentence.sort((a, b) => a.substr(-1) - b.substr(-1));

  sentence.forEach((sen) => {
    result.push(sen.substr(0, sen.length - 1));
  });

  return result.join(" ");
};

먼저 주어진 문자를 공백기준으로 분리해서 배열 sentence 에 할당을 해준다음

sentence를 각 단어 마지막의 숫자를 기준으로 오름차순 정렬을 해주었다.

정렬을 하고나면 sentence 안에는 원래 순서대로 단어들은 정렬되어있지만 각 단어들에는 순서 번호가 아직 달려 있는 상태이다.

이 번호들을 잘라주기 위하여 forEach 메소드를 이용해서 각 단어의 마지막 숫자를 제외한 나머지 단어 부분만을 잘라서 result 안에 넣어준 뒤

마지막으로 공백을 기준으로 문자열로 만들어서 리턴해주었다.

submit을 해보니

정답이었다!

profile
안녕하세요 :)

0개의 댓글