inblog logo
|
silver
    알고리즘문제풀기

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

    silver's avatar
    silver
    Mar 14, 2025
    [알고리즘문제풀기] 접미사 배열
    Contents
    문제내가 작성한 정답다른 사람들의 정답

    문제

    school.programmers.co.kr
    https://school.programmers.co.kr/learn/courses/30/lessons/181909

    내가 작성한 정답

    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

    RSS·Powered by Inblog