[js] 문자열 잘라서 정렬하기

sookyoung.k·2024년 6월 4일
0
post-thumbnail

문자열 myString이 주어집니다. "x"를 기준으로 해당 문자열을 잘라내 배열을 만든 후 사전순으로 정렬한 배열을 return 하는 solution 함수를 완성해 주세요.

단, 빈 문자열은 반환할 배열에 넣지 않습니다.

제한사항

  • 1 ≤ myString ≤ 100,000
    • myString은 알파벳 소문자로 이루어진 문자열입니다.

나의 풀이

function solution(myString) {
    return myString.split('x').filter((x) => x.trim() !== '').sort();
}
  • split('x')를 사용해서 'x'를 기준으로 문자열을 분리한다.
  • 빈 문자열을 반환 배열에 넣어선 안되므로 filter() 메서드를 사용하여 공백을 제거한다.
    • 아니 ... 뭐 다른데서 오타가 났던 건지 처음에 그냥 x !== ''를 하니까 공백 제거가 되지 않는 것임...? 그래서 결국 trim()을 사용해서 공백을 제거한 후에 공백을 제거한 후 필터링을 했다. 뭐였을까...?
  • 그 후 sort() 메서드를 통해 정렬

다른 풀이 1

const solution=s=>s.match(/[^x]+/g).sort()

정규표현식을 사용한 풀이이다!

  • s.match([^x]+/g): 'x'가 아닌 문자가 1개 이상 연속으로 나오는 부분을 찾아낸다. 이를 통해서 공백을 효과적으로 제거한 후 입력받은 문자열 s에서 정규표현식과 일치하는 부분을 차즌ㄴ다.
  • sort()로 정렬

다른 풀이 2

function solution(myString) {
  return myString
    .split("x")
    .filter((str) => str !== "")
    .sort();
}

내가 원래 하려던 게 이거였는데...! 과연 권수갱은 뭘 잘못했떤 것일까요? 하지만 풀었죠?

profile
영차영차 😎

0개의 댓글