class Solution {
public long solution(long n) {
long answer = 0;
String getPara = String.valueOf(n); //getPara객체에 n을 StringType으로 변환한 후 할당
String[] strArr = new String[getPara.length()]; //getPara.length 만큼의 배열생성
strArr = getPara.split(""); //strArr에 getPara를 한글자씩 쪼게서 할당
int[] intArr = new int[strArr.length]; //intType의 배열생성
for (int i = 0 ; i < intArr.length ; i++){ //크기 비교를 위해 intArr에 intType으로 형변환한 strArr할당
intArr[i] = Integer.parseInt(strArr[i]);
}
for(int i = 0 ; i < intArr.length; i++){ //크기를 비교해 역순으로 정렬하는 2중for문.
for(int j = 0; j < intArr.length; j++){ //j(안쪽 for)는 i(바깥쪽 for)에 의해 두번 반복되기 때문에 j =i+1
if (intArr[j] < intArr[i]){ //예시 : if (intArr[1] < intArr[0])
int temp = intArr[j]; //예시 : int temp = intArr[1]
intArr[j] = intArr[i]; //예시 : intArr[1] = intArr[0]
intArr[i] = temp; //예시 : intArr[0] = intArr[1]로 순환하며 큰 수를 앞으로 작은 수를 뒤로 정렬하는 알고리즘
}
}
}for (int i = 0; i < intArr.length; i++){ //정렬 후 intArr을 StringTypeArr로 형변환과 동시에 할당.
strArr[i] = String.valueOf(intArr[i]);
}
getPara = String.join("",strArr); //String Type getPara.join("",strArr) getPara에 값이 ""이면 strArr을 할당
answer = Long.parseLong(getPara); //리턴하기 위한 형변환
return answer;
}
}
문제 풀이의 시작을 for문으로 했었다.
중간쯤 정렬에서 문제가생겨 배열의 정렬을 찾아보던 도중에
ArrayList.sort()를 통해서 쉽게 해결할 수 있는 문제인걸 알았지만
끝까지 for문과 형변환으로 해결해보고 싶어 도전했고
아득바득 해결해냈다.
'Plo Algorithm' 카테고리의 다른 글
프로그래머스 Lv1 제일 작은 수 제거하기 (0) | 2022.03.16 |
---|---|
프로그래머스 Lv1 정수 제곱근 판별 (0) | 2022.03.16 |
프로그래머스 Lv1 자연수 뒤집어 배열로 만들기 (0) | 2022.03.16 |
프로그래머스 Lv1 자릿수 더하기 (0) | 2022.03.16 |
프로그래머스Lv1 이상한 문자 만들기 (0) | 2022.03.16 |