개발자/프로그래머스

자바_프로그래머스_정수 내림차순으로 배치하기

푸루닉 2022. 11. 23. 17:12

https://github.com/pulunick/programmers-and-baekjun/blob/main/Quiz12933.java

 

GitHub - pulunick/programmers-and-baekjun

Contribute to pulunick/programmers-and-baekjun development by creating an account on GitHub.

github.com

1. 코드

	// 접근 방법 : 내림차순 정렬은 String형으로 쉽게 가능하다.
	static class Solution4 {
	    public long solution4(long n) {
	    	// String 형으로 변환 후 String 배열에 split을 이용해 집어넣는다.
//	    	String s = String.valueOf(n);	    	
//	    	String[] ss = s.toString().split("");
	    	
	    	// 위 코드를 한줄로 표현 가능하다.
	    	String[] ss = String.valueOf(n).split("");
	    	
	    	// Collections.reversOrder()를 이용해 내림차순 정렬
	    	// int형의 경우 Arrays.stream(arr).boxed().toArray(Integer[]::new);을 통해 Integer타입
	    	// 배열로 변경해 줘야 한다.
	    	Arrays.sort(ss, Collections.reverseOrder());
	    	
	    	// StringBuilder의 append를 활용
	    	StringBuilder sb = new StringBuilder();
	    	for(String name : ss) {
	    		sb.append(name);
	    	}
//	    	String str = sb.toString();
	    	
	    	// long형으로 형변환 + toString을 통해 메소드를 재정의
	    	long answer = Long.parseLong(sb.toString());
       
	        return answer;
	    }
	}

2. 미흡한 점 

  • 한줄로 줄일 수 있던 코드를 더 줄이지 않았다.
  • 처음 접근 방식을 long형이기에 int[]로 잡았는데 String[]으로 잡는 것이 훨씬 편했다
    • String은 자바에서 가장 유연하기 때문.
  • StringBuilder에 대한 공부가 더 필요하다.