반응형
사이트명 : 프로그래머스(Programmers)
문제명 : 정수 내림차순으로 배치하기
언어 : 자바(Java)
n값을 받은 뒤 이걸 숫자 크기에 따라 정렬해서 반환하라는 문제인데
숫자를 하나씩 다 쪼갠 뒤에 큰 수 순서대로 깔아서 반환해줘야 한다
내가 푼 방법은 아래와 같은데
먼저 for 문을 돌리면서
n값을 String으로 변환한 뒤 1글자씩 자른 뒤 그걸 다시 int로 변환해서 list에 넣어준다
이후 Collections.sort를 사용해 역순으로 정렬해주면
큰 값이 list의 앞에 들어오고 작은 값이 끝에 들어오게 되는데
여기서 for문을 한번 더 돌려서 list 값을 다시 String 하나에 합쳐준다
역정렬을 통해 큰 수가 앞으로 가게 될 것이다
이후 String을 다시 Long 타입으로 변환한 뒤 반환한다
마지막으로 프로그래머스에 바로 적용 가능한 답안은 아래와 같다
import java.util.ArrayList;
import java.util.Collections;
class Solution {
public long solution(long n) {
long answer = 0;
int nLength = String.valueOf(n).length();
String answerString = "";
ArrayList<Integer> list = new ArrayList<Integer>();
for(int i = 0; i<nLength; i++) {
list.add(Integer.parseInt(String.valueOf(n).substring(i, i+1)));
}
Collections.sort(list, Collections.reverseOrder() ); // 역정렬
for(int i = 0; i<nLength; i++) {
answerString = answerString + list.get(i); // 역정렬 시킨 값 넣어주기
}
answer = Long.parseLong(answerString); // String을 Long으로 변환
return answer;
}
}
반응형
'Language > 알고리즘 문제풀이' 카테고리의 다른 글
프로그래머스 제일 작은 수 제거하기 풀이(Java) (0) | 2019.09.05 |
---|---|
프로그래머스 정수 제곱근 판별 풀이(Java) (0) | 2019.09.05 |
프로그래머스 자연수 뒤집어 배열로 만들기 풀이(Java) (0) | 2019.09.04 |
프로그래머스 자릿수 더하기 풀이(Java) (0) | 2019.09.04 |
프로그래머스 약수의 합 풀이(Java) (0) | 2019.09.04 |
댓글