문자열 정렬하기 (1)

난이도 중하
화낼거양's avatar
Mar 10, 2025
문자열 정렬하기 (1)
Contents
정답
 
 

문제 설명

문자열 my_string이 매개변수로 주어질 때, my_string 안에 있는 숫자만 골라 오름차순 정렬한 리스트를 return 하도록 solution 함수를 작성해보세요.

제한사항

  • 1 ≤ my_string의 길이 ≤ 100
  • my_string에는 숫자가 한 개 이상 포함되어 있습니다.
  • my_string은 영어 소문자 또는 0부터 9까지의 숫자로 이루어져 있습니다. - - -

입출력 예

my_string
result
"hi12392"
[1, 2, 2, 3, 9]
"p2o4i8gj2"
[2, 2, 4, 8]
"abcde0"
[0]

입출력 예 설명

입출력 예 #1
  • "hi12392"에 있는 숫자 1, 2, 3, 9, 2를 오름차순 정렬한 [1, 2, 2, 3, 9]를 return 합니다.
입출력 예 #2
  • "p2o4i8gj2"에 있는 숫자 2, 4, 8, 2를 오름차순 정렬한 [2, 2, 4, 8]을 return 합니다.
입출력 예 #3
  • "abcde0"에 있는 숫자 0을 오름차순 정렬한 [0]을 return 합니다.
 
 
기본적으로 주어진 코드 :
class Solution { public int[] solution(String my_string) { int[] answer = {}; return answer; } }
 
 

정답

 
import java.util.ArrayList; import java.util.Arrays; import java.util.List; class Solution { public int[] solution(String my_string) { List<Integer> list = new ArrayList<>(); for (int i = 0; i < my_string.length(); i++) { try { list.add(Integer.parseInt(String.valueOf(my_string.charAt(i)))); } catch (Exception e) { } } int[] answer = new int[list.size()]; for (int i = 0; i < list.size(); i++) { answer[i] = list.get(i); } Arrays.sort(answer); return answer; } }
 
  • 숫자 추출 및 리스트에 추가
    • List<Integer> list = new ArrayList<>(); for (int i = 0; i < my_string.length(); i++) { try { list.add(Integer.parseInt(String.valueOf(my_string.charAt(i)))); } catch (Exception e) { } }
    • ArrayList를 사용하여 숫자를 저장할 빈 리스트 list를 생성합니다.
    • for 반복문을 통해 문자열 my_string의 각 문자 i를 순회합니다.
    • try 블록을 사용하여 문자가 숫자로 변환될 수 있는 경우 숫자로 변환하여 리스트에 추가합니다.
    • 변환에 실패하는 경우 catch 블록에서 예외를 무시합니다.
  • 리스트를 배열로 변환
    • int[] answer = new int[list.size()]; for (int i = 0; i < list.size(); i++) { answer[i] = list.get(i); }
    • 리스트의 크기와 동일한 크기의 정수 배열 answer를 생성합니다.
    • for 반복문을 통해 리스트의 각 요소를 배열에 복사합니다.
  • 배열 정렬
    • Arrays.sort(answer);
    • Arrays.sort 메서드를 사용하여 배열을 오름차순으로 정렬합니다.
 
Share article

moohyun