좌충우돌 개발공부

TIL(20240513) 코딩테스트:정수 내림차순으로 배치하기


📌 코딩테스트 (매일매일)

🔒 문제 : 정수 내림차순으로 배치하기

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

🚫 조건 : n은 1이상 8000000000 이하인 자연수입니다.

💡 필요했던 메서드

  1. Arrays.sort(a) : 배열 a 내 요소들을 오름차순으로 정렬 / import필수 :import java.util.Arrays;
  2. split(“”) : 저장된 문자열을 “”<-기준으로 배열에 각각 저장
  3. Collections.reverseOrder() : 오름차순을 내림차순으로 정렬
  4. Long.parseLong() : Long타입으로 변환
  5. String.valueOf() : String타입으로 변환

🔓 문제풀이

import java.util.*;

class Solution {
    public long solution(long n) {
        long answer = 0;
        // Long타입 n을 String으로 변경하여 배열에 한 글자씩 저장
        String[] arr = String.valueOf(n).split("");
        
        // 내림차순 정렬
        Arrays.sort(arr, Collections.reverseOrder());
        
        String str = new String(); // String타입 객체생성
        for(int i=0; i<arr.length; i++){ 
            str += arr[i]; // 객체에 담기
        }
        answer = Long.parseLong(str); // Long타입 변환
        return answer;
        }
    }

🤷‍♀️ 문제풀이를 하면서 느낀점

: 쉽게 풀 수 있는 방법을 모르니, 정말 헤맸던 것 같다. 2차원 배열로 arr[i]값을 비교하여 큰 수부터 배열에 넣을까 햇는데, 너무 복잡해지는 것 같아 메서드를 활용하여 쉽게 풀 수 있는 방법을 구글링하여 계속 찾았던 것 같다. 해야할 공부가 많아서 그런지 코딩테스트는 빨리빨리 풀어야된다는 압박감이 큰 것 같다. 하지만 코딩테스트도 개발에 도움되는 요소들이 많으니 .. 이 공부 또한 꼼꼼히 해야하는데…ㅠ_ㅠ.. 흐힝


📌 SQL (월,수,금, 매주 “목”)

  • 오늘은.. Spring 첫 입문주차로 .. SQL 패스..