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

hye·2023년 2월 14일
0

AlgorithmTest

목록 보기
11/95

📖 Exam

문제 설명

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

제한 조건

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

입출력 예

nreturn
118372873211

✍ Answer

    public long solution(long n) {
        String[] arrayN = Long.toString(n).split("");
        for(int i=0; i<arrayN.length-1; i++){
            for(int j=i+1; j<arrayN.length; j++){
                if(Integer.parseInt(arrayN[i]) < Integer.parseInt(arrayN[j])){
                    String tmp=arrayN[i];
                    arrayN[i]=arrayN[j];
                    arrayN[j]=tmp;
                }
            }
        }
        
        String answer = "";
        
        for(String i:arrayN){
            answer += i;
        }

        return Long.parseLong(answer);
    }

💡 Realization

  • ㅠㅠ 배열 만들다가 너무 지저분해서 gg 치고 구글링해보니
    배열의 오름차순, 내림차순은 배열의 메서드를 사용하더라. 머리가 띵...

Arrays.sort()

Collections.reverseOrder()

참고사이트: https://codechacha.com/ko/java-sorting-array/

  • 메서드 사용 말고 직접 풀고 있던 방법이 있었던터라,
    다른 방식은 없을까해서 검색하니 temp를 이용해서 셔플 방법을 쓰더라.
    여기까지 생각 못한건 아닌데 여기에서 풀어쓰는 방식에 대해 사고가 이어지지못했음.
    버블정렬, 선택정렬에 대해서 배우진않았지만 옆 반에서 배우는걸 보고 아 저런게 있구나 까지만 알았지 체득하진않았었다.
    물론 저게 알려주신 셔플과 다를게 없긴해서 내가 잘했다면 혼자 풀었을 문제였다. 열심히 공부하자...

버블정렬

선택정렬

참고사이트: https://seraphinaly.tistory.com/19


  • 실화냐 큰 수부터 정렬인데 그냥 거꾸로 정렬로 만들었네.. 어쩐지 전에 문제랑 비슷한거 같더라니 ㅠ
    코드가 깔끔하다고는 생각 들지않지만, 아까워서 풀었던거 남겨둠.
public class Solution {
    public long solution(long n) {
        String strN = String.valueOf(n);
        String[] splitN = strN.split("");
        String strAnswer = "";
        for(int i = 0; i < splitN.length; i++){
            strAnswer += splitN[splitN.length-1-i];
        }
        return Long.parseLong(strAnswer);
    }
}

프로그래머스는 아직도 넘사벽...
요즘 자격증 시험 준비랑 면접 준비때문에 프로그래머스의 해답은 슬적 보기만하고 개념 공부를 못하고 있는데
시험 끝나면 얼른 해야겠다. 풀 때마다 모르는 내용 쌓이는 기분이 좋지않음. 개념 다 흡수하고싶다.
참고사이트: https://school.programmers.co.kr/learn/courses/30/lessons/12933/solution_groups?language=java

profile
Junior Backend Developer

0개의 댓글