[알고리즘문제풀기] 접미사 배열

silver's avatar
Mar 14, 2025
[알고리즘문제풀기] 접미사 배열

문제

내가 작성한 정답

for

import java.util.*; class Solution { public String[] solution(String my_string) { int len = my_string.length(); String[] answer = new String[len]; for(int i =0; i<len; i++){ answer[i] = my_string.substring(i, len); } Arrays.sort(answer); return answer; } }

StreamAPI

import java.util.stream.IntStream; class Solution { public String[] solution(String my_string) { return IntStream.range(0,my_string.length()) .mapToObj(i->my_string.substring(i,my_string.length())) .sorted().toArray(String[]::new); } }

다른 사람들의 정답

StreamAPI

import java.util.*; import java.util.stream.IntStream; class Solution { public String[] solution(String myString) { return IntStream.range(0, myString.length()).mapToObj(myString::substring).sorted().toArray(String[]::new); } }
.mapToObj(myString::substring): 각 인덱스 i에 대해 myString.substring(i)을 호출하여 myString의 접미사를 생성한다. myString::substring은 메서드 참조로, myString.substring(i)와 동일한 역할을 한다.

CharAt

import java.util.Arrays; class Solution { public String[] solution(String my_string) { String[] answer = new String[my_string.length()]; String str = ""; for (int i = my_string.length() - 1; i >= 0; i--) { // 현재 인덱스의 문자를 str의 앞에 추가하여 역순으로 문자열을 만든다. str = my_string.charAt(i) + str; answer[i] = str; } Arrays.sort(answer); return answer; } }
💡
charAt(i) :문자열(String)의 특정 위치에 있는 문자를 반환
 
Share article

silver