본문 바로가기

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

[프로그래머스] 문자열 잘라서 정렬하기

728x90

코드 힌트

  1. split() 메소드 사용하기:
    • 설명: split 메소드는 문자열을 특정 구분자를 기준으로 나누어 배열을 반환합니다. 예를 들어, "abcxdefxghi".split("x")는 ["abc", "def", "ghi"]를 반환합니다.
    • 코드: String[] parts = myString.split("x");
    • 주의: 분리된 문자열이 빈 문자열인 경우도 포함될 수 있으므로 isEmpty를 사용해 필터링합니다.
  2. Arrays.sort()를 사용하여 배열을 오름차순으로 정렬하기:
    • 설명: Arrays.sort는 배열을 오름차순으로 정렬하는 메소드입니다.
    • 코드: Arrays.sort(result);
  3. ArrayList 사용하기:
    • 설명: ArrayList는 동적으로 크기가 변경될 수 있는 리스트입니다. 배열의 크기를 미리 알 수 없을 때 유용합니다.
    • 코드: List<String> list = new ArrayList<>();
    • 추가: 나중에 배열로 변환하기 위해 ArrayList를 사용합니다.
  4. 빈 배열일 때 처리하기:
    • 설명: split으로 분리된 문자열 중 빈 문자열을 제외합니다. 예를 들어, "xxabcx".split("x")는 ["", "", "abc", ""]를 반환할 수 있습니다.
    • 코드: isEmpty(), equals("") 로 확인할 수 있습니다.
  5. 반환하기:
    • 설명: ArrayList를 배열로 변환한 후, 정렬하여 반환합니다.
String[] result = new String[list.size()];
for (int i = 0; i < result.length; i++) {
    result[i] = list.get(i);
}

 

 

StringTokenizer를 사용한 방법

StringTokenizer 클래스는 문자열을 토큰으로 분리하는 데 사용됩니다. split 메소드와 비슷하지만, StringTokenizer는 더 간단하게 사용할 수 있습니다. 추가적으로 공부하고 싶은 분들은 해보시는 것을 추천합니다.

 


정답은 더보기 클릭

더보기
import java.util.*;

class Solution {
    public String[] solution(String myString) {
        // 결과를 담을 리스트를 생성
        List<String> list = new ArrayList<>();
        
        // 1. split() 메소드 사용하여 문자열을 "x"를 기준으로 분리하기
        // split은 문자열을 특정 구분자를 기준으로 나누어 배열을 반환하는 메소드입니다.
        for (String s : myString.split("x")) {
            // 빈 문자열이 아닌 경우에만 리스트에 추가하기
            if (!s.isEmpty()) {
                list.add(s);
            }
        }
        
        // 리스트를 배열로 변환
        String[] result = new String[list.size()];
        for (int i = 0; i < result.length; i++) {
            result[i] = list.get(i);
        }
        
        // 2. Arrays.sort()를 사용하여 배열을 오름차순으로 정렬하기
        // Arrays.sort는 배열을 오름차순으로 정렬하는 메소드입니다.
        Arrays.sort(result);
        
        // 정렬된 배열 반환
        return result;
    }
}
728x90