[프로그래머스|JAVA] 정수 내림차순으로 정렬하기 | StringBuilder 사용 ⭕️ , 간단 코드, Stream 사용 ❌

2025. 9. 1. 17:32·💻코딩/💡Programmers
728x90
반응형

[문제 링크]

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

[문제]

 

 


 

📍 [코드]

import java.util.*;
class Solution {
    public long solution(long n) {
        char[] arr = String.valueOf(n).toCharArray();
        Arrays.sort(arr); 
        
        //내림차순 위해
        //StringBuilder -> 수정 가능한 String
        StringBuilder sb = new StringBuilder(new String(arr));
        sb.reverse();
        
        return Long.parseLong(sb.toString());
    }   
}

 

💡 접근법

  • String.valueOf(n) : Long 타입 n을 String으로 변환
  • toCharArray() : String 타입 n을 Char 타입으로 변환
  • Arrays.sort(): Char 타입 배열이므로 sort() 사용하여 오름차순 정렬
  • StringBuilder 사용하여 수정 가능하게 만든 후,
  • reverse() : 역으로 정렬  ➡️ 내림차순 정렬
  • Long.parseLong(): Long 타입 변환
  • toString() : StringBuiler 객체 내용을 String으로 변환하여 보여줌

✅ StringBuilder을 사용하여 손 쉽게 내림차순 정렬을 할 수 있음

 

 


 

💬 마무리

StringBuilder은 처음 사용해보는 것 같은데 큰 장점이 있는 것 같다.
String의 경우 한글자씩 수정하는 것이 불가능하다. (즉, 불변객체)
하지만, 이를 가능하게 하는 것이 StringBuilder이다. 쉽게 말해서 문자열을 다룰 때 수정 가능한 String이다.
아래와 같이 손쉽게 수정할 수 있으므로 익혀두는 것이 좋을 것 같다.

 

📚 StringBuilder 예시

StringBuilder sb = new StringBuilder("hello");

// 문자 추가
sb.append(" world");   // "hello world"

// 문자 삽입
sb.insert(5, " JAVA"); // "hello JAVA world"

// 문자 삭제
sb.delete(5, 10);      // "hello world"

// 문자 교체
sb.setCharAt(0, 'H');  // "Hello world"

// 뒤집기
sb.reverse();          // "dlrow olleH"

// 문자열로 변환
String result = sb.toString();

 

 

728x90
반응형

'💻코딩 > 💡Programmers' 카테고리의 다른 글

[프로그래머스|JAVA] 주차 요금 계산 | TreeMap과 Map.merge 활용 🚗 | 시간 계산 아이디어 & 코드 분석 📚  (0) 2025.10.28
[프로그래머스|JAVA] 롤케이크 자르기 | Set과 Map 사용 ⭕️ | Set 과 Map 특징 및 시간 복잡도 비교 | 실패한 코드도 같이..📚  (0) 2025.09.08
[프로그래머스|JAVA] 서버 증설 횟수 📈 | 배열 활용 | 쉬운 코드 ⭕️  (0) 2025.08.25
[프로그래머스|JAVA] K번째 수 | 정렬 | List 활용 📚  (1) 2025.08.25
[프로그래머스|JAVA] 시저 암호 | 🌐 아스키코드 값 (유니코드) 활용 | 간단 코드  (1) 2025.08.25
'💻코딩/💡Programmers' 카테고리의 다른 글
  • [프로그래머스|JAVA] 주차 요금 계산 | TreeMap과 Map.merge 활용 🚗 | 시간 계산 아이디어 & 코드 분석 📚
  • [프로그래머스|JAVA] 롤케이크 자르기 | Set과 Map 사용 ⭕️ | Set 과 Map 특징 및 시간 복잡도 비교 | 실패한 코드도 같이..📚
  • [프로그래머스|JAVA] 서버 증설 횟수 📈 | 배열 활용 | 쉬운 코드 ⭕️
  • [프로그래머스|JAVA] K번째 수 | 정렬 | List 활용 📚
망꼬누나
망꼬누나
공부한 내용을 정리하는 공간입니다.
  • 망꼬누나
    망꼬누나의 개발 공부
    망꼬누나
  • 전체
    오늘
    어제
    • 분류 전체보기 (165)
      • ℹ️ 정보 및 실습 (19)
        • ☑️ Git & GitHub (8)
        • ☑️ 프로젝트 (6)
        • ☑️ 회고 및 후기 (5)
      • 🛠 CS (1)
      • 💻코딩 (88)
        • 💡Baekjoon (17)
        • 💡Programmers (71)
      • ✏️공부 (48)
        • 💡OS (1)
        • 💡Network (6)
        • 💡SpringBoot (9)
        • 💡JAVA (21)
        • 💡SQL (1)
        • 💡DB (2)
        • ☁️ Cloud (4)
        • 💡알고리즘 (4)
      • 📌 자격증 (6)
        • 📝정보처리기사 (3)
        • 📝SQLD (3)
  • 블로그 메뉴

    • 홈
    • github
  • 나의 GitHub Contribution 그래프
    Loading data ...
  • 인기 글

  • 태그

    map
    트랜잭션
    GIT
    baekjoon
    데브코스
    S3
    알고리즘
    Set
    Java
    AWS
    github
    네트워크
    Stream
    백엔드
    프로그래머스 #JAVA
    코딩테스트
    동시성제어
    자바
    자료구조
    프로그래머스
  • 최근 댓글

  • 최근 글

  • 250x250
    반응형
  • hELLO· Designed By정상우.v4.10.5
망꼬누나
[프로그래머스|JAVA] 정수 내림차순으로 정렬하기 | StringBuilder 사용 ⭕️ , 간단 코드, Stream 사용 ❌
상단으로

티스토리툴바