1. 문제 설명
2. 나의 풀이
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
class Solution {
public int[] solution(String my_string) {
List<Integer> list = new ArrayList<Integer>();
for(int i = 0; i < my_string.length(); i++)
{
if(Character.isDigit(my_string.charAt(i)))
{
list.add(my_string.charAt(i)- '0');
}
}
Collections.sort(list);
int[] answer = new int[list.size()];
for(int i = 0; i < list.size(); i++)
{
answer[i] = list.get(i);
}
return answer;
}
}
1. 숫자 뽑기
2. 뽑은 숫자 배열로 만들기
3. 오름차순 정렬
for문으로 숫자를 찾은 뒤, 숫자 갯수 만큼 배열 사이즈를 만들기 싫어서
List를 사용하여 사이즈를 정하지 않고도 숫자만 리스트에 바로 추가할 수 있도록 하였다.
그리고 숫자인지 검사 (my_string.charAt(i)- '0' <= 9 로 해도 됨)
하고 list에 추가하고, Colllections.sort로 정렬
배열로 반환하기.
3. 다른 사람의 풀이
import java.util.Arrays;
class Solution {
public int[] solution(String my_string) {
my_string = my_string.replaceAll("[a-z]","");
int[] answer = new int[my_string.length()];
for(int i = 0; i < answer.length; i++){
answer[i] = my_string.charAt(i) - '0';
}
Arrays.sort(answer);
return answer;
}
}
문제 조건에서 특문 , 한글 없이 소문자와 숫자만 있다고 했으므로
replaceAll로 영문 소문자만 골라내고 바로 배열 크기로 이용. 숫자들을 집어넣고 sort로 정렬하니 깔끔하다.
지금 배열 문제 몇개를 풀었는데도 코드가 깔끔해지지가 않는다.. 노력해야지~
'코테 > java' 카테고리의 다른 글
lv 1 정수 내림차순으로 배치하기 (2) | 2024.12.20 |
---|---|
[프로그래머스][java] lv 0 중복된 문자 제거 (0) | 2024.12.02 |
[프로그래머스][java] lv 0 주사위의 개수 (0) | 2024.11.27 |
[프로그래머스][java] lv 0 공 던지기 (0) | 2024.11.23 |
[프로그래머스][java] lv 0 n의 배수 고르기 (0) | 2024.11.22 |