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

silver's avatar
Apr 07, 2025
[알고리즘문제풀기] 문자열 잘라서 정렬하기

문제

내가 작성한 정답

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