[프로그래머스] 정수 내림차순으로 배치하기

Jhanoo·2024년 9월 19일

알고리즘 스터디

목록 보기
40/80

[level 1] 정수 내림차순으로 배치하기 - 12933

문제 링크

성능 요약

메모리: 77 MB, 시간: 12.34 ms

구분

코딩테스트 연습 > 연습문제

채점결과

정확성: 100.0
합계: 100.0 / 100.0

제출 일자

2024년 09월 19일 20:56:42

문제 설명

함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다.

제한 조건
  • n은 1이상 8000000000 이하인 자연수입니다.
입출력 예
n return
118372 873211

출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges


풀이

  • 각 자릿수에 해당하는 숫자의 개수를 세어서 큰 숫자부터 재배열

코드

class Solution {
    public long solution(long n) {

		int num[] = new int[10]; // 0, 1, 2, ... , 9에 해당하는 숫자의 개수 배열
		for (long i = n; i > 0; i /= 10) {
			num[(int) (i % 10)]++; // 각 자릿수에 해당하는 숫자 개수++
		}

		String s = "";
		for (int i = 9; i >= 0; i--) {
			while (num[i] > 0) {
				s += i; // 큰 숫자부터 넣기
				num[i]--;
			}
		}

		return Long.parseLong(s);
	}
}
profile
최선을 다하자~~

0개의 댓글