[Lv.0] 접미사 배열

woodstock·2024년 1월 9일
0

코딩테스트

목록 보기
27/56
post-thumbnail

접미사 배열

문제설명

어떤 문자열에 대해서 접미사는 특정 인덱스부터 시작하는 문자열을 의미한다. 예를 들어, "banana"의 모든 접미사는 "banana", "anana", "nana", "ana", "na", "a"이다.

문자열 str이 매개변수로 주어질 때, str의 모든 접미사를 사전순으로 정렬한 문자열 배열을 return 하는 solution 함수를 작성하는 문제이다.

배열 메서드의 활용

풀이

풀이

const solution = (str) => Array.from(str, (_, i) => str.slice(i)).sort();

풀이해설

Array.from(str); 

// [ 'b', 'a', 'n', 'a', 'n', 'a' ]
  • 입력된 문자열 str의 각 문자를 요소로 하는 배열을 생성한다.
Array.from(str).slice(0); // [ 'b', 'a', 'n', 'a', 'n', 'a' ]
Array.from(str).slice(1); // [ 'a', 'n', 'a', 'n', 'a' ]
Array.from(str).slice(2); // [ 'n', 'a', 'n', 'a' ]
Array.from(str).slice(3); // [ 'a', 'n', 'a' ]

// ... 생략
  • slcie(i)를 이용해 i 인덱스에서 시작하여 배열의 끝까지 요소를 추출한다.
Array.from(str, (_, i) => str.slice(i));

// [ 'banana', 'anana', 'nana', 'ana', 'na', 'a' ]
  • Array.from 함수는 내부적으로 맵 함수(map function) 기능을 내장하고 있으므로 이를 활용해 각 문자로부터 시작하는 접미사를 생성하며 배열로 반환한다.
Array.from(str, (_, i) => str.slice(i)).sort();

// [ 'a', 'ana', 'anana', 'banana', 'na', 'nana' ]
  • sort() 메서드를 사용하여 생성된 접미사 배열을 사전순으로 정렬한다.
profile
해내는 사람

0개의 댓글