Programmers/Lv.0

[프로그래머스][Lv.0][Java] 문자열 정렬하기(1)

dbssk 2023. 4. 10. 08:23

코딩테스트 연습 - 문자열 정렬하기 (1) | 프로그래머스 스쿨 (programmers.co.kr)

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제 설명

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


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

풀이
  • my_string.chars(): my_string의 각 문자에 대한 IntStream을 반환한다.

  • filter(Character::isDigit): isDigit() 메서드를 이용하여 각 문자가 숫자인지 확인하고, filter()는 해당 조건이 true인 요소만 필터링한다.

  • map(Character::getNumericValue): getNumericValue() 메서드를 이용하여 각 문자를 해당하는 숫자 값으로 변환한다.

  • sorted(): 정렬되지 않은 숫자 배열을 오름차순으로 정렬한다.

  • toArray(): 스트림의 요소를 정수 배열로 반환한다.

import java.util.stream.*;

class Solution {
    public int[] solution(String my_string) {
        
        int[] answer = my_string.chars().filter(Character::isDigit).map(Character::getNumericValue).sorted().toArray();
    
        return answer;
    }
}