728x90
프로그래머스 _ 코딩 기초 트레이닝 DAY 9 - (4)
출처 - https://school.programmers.co.kr/learn/courses/30/lessons/181909
문제 | 어떤 문자열에 대해서 접미사는 특정 인덱스부터 시작하는 문자열을 의미합니다. 예를 들어, "banana"의 모든 접미사는 "banana", "anana", "nana", "ana", "na", "a"입니다.
문자열 my_string이 매개변수로 주어질 때, my_string의 모든 접미사를 사전순으로 정렬한 문자열 배열을 return 하는 solution 함수를 작성해 주세요.
입력 #1 | "banana"
출력 #1 | ["a", "ana", "anana", "banana", "na", "nana"]
>> 풀이 <<
배열은 접미사인 문자열을 계속 추가할 수 없으므로 리스트를 만들어 리스트에 접미사들을 추가하고, 이를 배열로 바꾼 후 오름차순 정렬을 해 문제를 풀려고 한다. 접미사를 구할 땐 for문을 이용해 i 부터 끝까지의 문자열을 구하면 된다.
- 배열의 오름차순 -> Arrays.sort()
- Arrays.sort(Array) 를 사용하려면, java.util.Arrays 를 선언해야 한다.
- 배열의 내림차순 -> Arrays.sort(arr, Collections.reverseOrder())
- 이 역시 java.util.Arrays 를 선언해야 한다.
- Collections는 기본적으로 Object를 상속한 클래스에 대해서 사용 가능한 인터페이스라서 String, Integer 같은 제네릭타입 변수에는 사용이 가능하지만, int, char 등 기본타입에는 사용이 불가능하다.
import java.util.List;
import java.util.Arrays;
import java.util.ArrayList;
class Solution {
public String[] solution(String my_string) {
List<String> lst = new ArrayList<>();
for (int i = 0 ; i < my_string.length() ; i++) {
lst.add(my_string.substring(i,my_string.length()));
}
String[] answer = lst.toArray(new String[lst.size()]);
Arrays.sort(answer);
return answer;
}
}
'코딩테스트 > 프로그래머스 Lv.0' 카테고리의 다른 글
[프로그래머스] 배열 조각하기 ( Arrays.copyOfRange ) - JAVA (0) | 2023.08.28 |
---|---|
[프로그래머스] 문자 개수 세기 ( 대소문자 판별, 배열 값 채우기 ) - JAVA (0) | 2023.07.21 |
[프로그래머스] 문자열 여러 번 뒤집기 (String.valueOf vs toString) - JAVA (0) | 2023.07.13 |
[프로그래머스] 9로 나눈 나머지 (char to int) - JAVA (0) | 2023.07.12 |
[프로그래머스] 카운트 업 (IntStream) - JAVA (0) | 2023.07.10 |