문자열 정렬하기 (1) [CT]

성배·2025년 1월 15일
0

코딩테스트

목록 보기
23/53

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

생각한 풀이
1. String으로 받으니 charAt()으로 해당 문자가 숫자인지 판별
2. 숫자의 개수를 카운트해서 배열 크기 할당
3. 배열 sort


import java.util.Arrays;
class Solution {
    public int[] solution(String my_string) {
        int cnt=0;
        for(int i=0;i<my_string.length();i++){
            if(Character.isDigit(my_string.charAt(i))){
                cnt++;
            }  
        }
        
        int[] answer = new int[cnt];
        int num=0;
        for (int i = 0; i < my_string.length(); i++) {
            if (Character.isDigit(my_string.charAt(i))) {
                answer[num] = my_string.charAt(i) - '0';
                num++;
            }
        }
        
        Arrays.sort(answer);
        return answer;
    }
}

🐴 풀이
1. Character.isDigit()로 해당 문자가 숫자인지 판별하고 맞다면 cnt++
2. cnt 크기만큼의 배열 생성
3. for문으로 my_string을 돌면서 숫자에 해당하는 값을 -'0'을 통해 char를 int로 변형해주고 배열에 넣어준다
4. '0'은 문자 '0'의 아스키 코드 값인 48을 나타내서 char -'0'을 한다면 예를들어 char '5'-'0'을 하면 int 5로 변환할 수 있다
4. 마지막에 정렬을 위해 Arrays.sort()하고 출력한다

 


Character.isDigit()

isDigit() 함수는 특정 char 값이 숫자인지 판별하는 함수로 출력값은 boolean으로 숫자이면 true 아니면false를 리턴한다

0개의 댓글