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

    [알고리즘문제풀기] 문자열 잘라서 정렬하기

    silver's avatar
    silver
    Apr 07, 2025
    [알고리즘문제풀기] 문자열 잘라서 정렬하기
    Contents
    문제내가 작성한 정답다른 사람들의 정답

    문제

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

    내가 작성한 정답

    ArrayList

    import java.util.*; class Solution { public String[] solution(String myString) { String[] answer11 = myString.split("x"); ArrayList<String> answer = new ArrayList<>(); Arrays.sort(answer11); for(String s : answer11){ if(!s.isEmpty()) answer.add(s); } return answer.toArray(String[]::new); } }

    stream

    import java.util.Arrays; class Solution { public String[] solution(String myString) { return Arrays.stream(myString.split("x")) // String[]->Stream<String> .filter(s->!s.isEmpty()) // Stream<String> : 문자열 요소들의 흐름일 뿐 배열같은 것이 아니다. .sorted() // Stream<String> .toArray(String[]::new); // .toArray -> 인자가 없는 toArray()는 Object[]를 반환 } }

    다른 사람들의 정답

    import java.util.*; class Solution { public String[] solution(String myString) { StringTokenizer st = new StringTokenizer(myString, "x"); int idx = 0, N = st.countTokens(); // idx는 결과 배열에 토큰을 저장할 인덱스를 나타내는 변수이며, 초기값은 0. // N은 StringTokenizer 객체 st에 남아있는 토큰의 총 개수를 나타내는 변수. // countTokens() 메소드는 남아있는 토큰의 수를 반환한다. String[] result = new String[N]; // 토큰을 저장할 String 배열 result를 생성. 배열의 크기는 토큰의 총 개수 N으로 설정. for (int n = 0;n < N;n++) // 각 반복에서 StringTokenizer에서 다음 토큰을 가져와 result 배열에 저장. result[idx++] = st.nextToken(); // st.nextToken()은 StringTokenizer에서 다음 토큰을 반환. // 반환된 토큰은 result[idx]에 저장되고, idx는 1 증가. (후위 증가 연산자 사용) Arrays.sort(result); return result; } }
    💡
    StringTokenizer 클래스는 Java에서 문자열을 지정된 구분자를 기준으로 토큰(단어)으로 분리하는 데 사용되는 클래스다.
    • StringTokenizer(String str): 주어진 문자열 str을 기본 구분자(공백)를 사용하여 토큰화하는 StringTokenizer 객체를 생성
    • StringTokenizer(String str, String delim): 주어진 문자열 str을 지정된 구분자 delim을 사용하여 토큰화하는 StringTokenizer 객체를 생성
    • StringTokenizer(String str, String delim, boolean returnDelims): 주어진 문자열 str을 지정된 구분자 delim을 사용하여 토큰화하는 StringTokenizer 객체를 생성. returnDelims가 true이면 구분자도 토큰으로 반환하고, false이면 구분자는 토큰으로 반환하지 않는다.
    • hasMoreTokens(): 토큰화된 문자열에 아직 읽지 않은 토큰이 남아 있는지 여부를 반환.
    • nextToken(): 토큰화된 문자열에서 다음 토큰을 반환. 더 이상 토큰이 없으면 NoSuchElementException이 발생한다.
    • countTokens(): 토큰화된 문자열에서 아직 읽지 않은 토큰의 총 개수를 반환한다. 다음 토큰을 가져오는 데 영향을 주지 않는다.
     
    Share article

    silver

    RSS·Powered by Inblog