[JAVA] 정수 내림차순으로 배치하기

태로미·2023년 9월 11일
0

Programmers

목록 보기
9/29
post-thumbnail

❓문제


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



🚫제한


• n은 1이상 8000000000 이하인 자연수입니다.



💻입출력 예


nreturn
118372873211













📝해결


향상된 for문

class Solution {
	public long solution(long n) {
      
		String[] str = Long.toString(n).split("");
		Arrays.sort(str, Collections.reverseOrder());
	
		String answer = "";
      
		for(String s : str) {
			answer += s;
		}
    
		return Long.parseLong(answer);
	}
}
  • String 배열로 만들기 위해 n을 Long.toString()으로 String으로 만든 후,
    String 클래스의 split("") 메서드를 사용하여 문자열을 배열로 변환.
    • 반대로 배열을 문자열로 변환해주는건 String 클래스의 join() 메서드
  • String 배열을 정렬하기 위해 Arrays.sort() 메서드로 정렬하지만,
    이는 오름차순만 가능.
    • sort()Collections.reverseOrder()를 두 번째 매개변수로 넣어주면 내림차순으로 정렬됨.
  • 향상된 for문을 돌리며 answer에 추가되도록 함.
  • 완성된 answer값을 Long.parseLong() 메서드를 통해 String타입에서 Long타입으로 형변환.






💭마무리

  • Level_1 / 28:36
  • Point
    – long타입과 String타입간의 형변환
    – 문자열을 배열로 변환하기
    – 배열과 리스트의 오름차순 및 내림차순 정렬

long타입과 String타입간의 형변환과 문자열을 배열로 변환하는 법을 배웠고,
배열과 리스트의 오름차순 및 내림차순 정렬 메서드 또한 익혔다ㅎㅎㅎ^^v
향상된 for문은 머릿속으로는 알고 있는데 어쩐지 자주 안써진다ㅠㅠㅠ
계속 쓰는 습관을 들여야 자연스럽게 머릿속에 딱 떠오를텐데,,,
역시 백문이불여일타 더 분발하자!!!!!!!!🔥🔥🔥🔥🔥


profile
Here And Now

0개의 댓글