본문 바로가기

프로그래머스(Java)/Level 0

[프로그래머스] 접미사 배열

728x90

코드 힌트:

접미사를 가지고 오는 방법은 2가지가 있습니다

 

1. 역순으로 문자열에서 접미사 추출:

  • 문자열을 역순으로 순회하면서 각 인덱스에서부터 문자를 하나씩 가져오는 방법입니다.

2. 순서대로 접미사 추출:

  • 문자열을 순서대로 탐색하면서 substring() 메서드를 사용하여 접미사를 추출하는 방법입니다.
    저는 substring을 추천합니다( 처리 속도와 메모리 사용량 면에서도 효율적이라는 장점이 있습니다. )
역순으로 꺼내기
for (int i = my_string.length()-1; i >= 0; i--) {
    my_string.charAt(i)를 사용하여 해당 값을 꺼냅니다
}

substring을 사용하여 자르기
for (int i = 0; i < my_string.length(); i++) {
    my_string.substring(i, my_string.length()) 
}
  • 정렬: Arrays.sort() 메서드를 사용하여 문자열 배열을 사전순으로 정렬합니다.
import java.util.Arrays;

Arrays.sort(배열);

 

 

 


정답은 더보기 클릭

더보기

1. 역순 charAt() 사용

import java.util.Arrays;

class Solution {
    public String[] solution(String my_string) {
        String[] result = new String[my_string.length()]; // 결과를 저장할 배열 생성
        String s = ""; // 누적된 문자열을 저장할 변수
        
        int index = 0; // 결과 배열의 인덱스
        
        // 문자열을 뒤집어가며 처리
        for (int i = my_string.length()-1; i >= 0; i--) {
            s = my_string.charAt(i) + s; // 문자열을 뒤집어가며 s에 누적
            
            result[index++] = s; // 현재 누적된 문자열을 결과 배열에 저장
        }
        
        Arrays.sort(result); // 결과 배열을 사전순으로 정렬
        return result; // 정렬된 결과 배열 반환
    }
}

 

 

2. substring() 사용

import java.util.Arrays;

class Solution {
    public String[] solution(String my_string) {
        String[] result = new String[my_string.length()]; // 결과를 저장할 문자열 배열 생성
        
        // 문자열의 각 위치에서 접미사를 추출하여 result 배열에 저장
        for (int i = 0; i < my_string.length(); i++) {
            result[i] = my_string.substring(i, my_string.length());
        }
        
        Arrays.sort(result); // 문자열 배열을 사전순으로 정렬
        
        return result; // 정렬된 접미사 배열 반환
    }
}
728x90