๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿงฉ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/๐Ÿต ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ’€์ด(Java)

์ •์ˆ˜ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ๋ฐฐ์น˜ํ•˜๊ธฐ

by carrot0911 2024. 11. 7.

๋ฌธ์ œ ์„ค๋ช…

ํ•จ์ˆ˜ solution์€ ์ •์ˆ˜ n์„ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ž…๋ ฅ๋ฐ›์Šต๋‹ˆ๋‹ค. n์˜ ๊ฐ ์ž๋ฆฟ์ˆ˜๋ฅผ ํฐ ๊ฒƒ๋ถ€ํ„ฐ ์ž‘์€ ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ ์ƒˆ๋กœ์šด ์ •์ˆ˜๋ฅผ ๋ฆฌํ„ดํ•ด์ฃผ์„ธ์š”. ์˜ˆ๋ฅผ ๋“ค์–ด n์ด 118372๋ฉด 873211์„ ๋ฆฌํ„ดํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

https://school.programmers.co.kr/learn/courses/30/lessons/12933

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

SW๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ‰๊ฐ€, ๊ต์œก, ์ฑ„์šฉ๊นŒ์ง€ Total Solution์„ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฒ ์ด์Šค์บ ํ”„

programmers.co.kr

์ œํ•œ ์‚ฌํ•ญ

  • n์€ 1 ์ด์ƒ 8,000,000,000 ์ดํ•˜์ธ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

n return
118372 873211

 

๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ

import java.util.*;

class Solution {
    public long solution(long n) {
        long answer = 0;
        
        String[] str = String.valueOf(n).split("");
        
        Arrays.sort(str, Collections.reverseOrder());
        
        String newstr = "";
        for (int i = 0; i < str.length; i++) {
            newstr += str[i];
        }
        
        answer = Long.parseLong(newstr);
        
        return answer;
    }
}

์ฝ”๋“œ ์„ค๋ช…

  • String[ ] str = String.valueOf(n).split("") : long ํƒ€์ž…์˜ n์„ String์œผ๋กœ ํ˜•๋ณ€ํ™˜ ํ›„ String ํƒ€์ž…์˜ ๋ฐฐ์—ด str์— ํ•œ ๊ธ€์ž์”ฉ ์ž…๋ ฅํ•œ๋‹ค.
  • Arrays.sort(str, Collections.reverseOrder( )) : String ํƒ€์ž…์˜ ๋ฐฐ์—ด str์˜ ์ˆœ์„œ๋ฅผ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค.
  • String newstr = "" : ๊ฐ’์ด ์—†๋Š” String ํƒ€์ž…์˜ ๋ณ€์ˆ˜ newstr๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
  • for (int i = 0; i < str.length; i++) { } : ๋ฐ˜๋ณต๋ฌธ์„ ์ด์šฉํ•˜์—ฌ i๊ฐ€ 0๋ถ€ํ„ฐ str.length - 1๊นŒ์ง€ ์ฆ๊ฐ•ํ•˜๋ฉฐ ๋ฐ˜๋ณตํ•œ๋‹ค.
    • newstr += str[i] : ๋น„์–ด์žˆ๋Š” ๋ณ€์ˆ˜ newstr์— ๋ฐฐ์—ด str์— ์žˆ๋Š” ๊ฐ’์„ ์ธ๋ฑ์Šค ์ˆœ์„œ๋Œ€๋กœ ํ•˜๋‚˜์”ฉ ์ž…๋ ฅํ•œ๋‹ค.
  • anwer = Long.parseLong(newstr) : String ํƒ€์ž…์˜ newstr์„ ์ž…๋ ฅ๋ฐ›์•„ long ํƒ€์ž…์œผ๋กœ ํ˜•๋ณ€ํ™˜ํ•˜์—ฌ answer์— ์ €์žฅํ•œ๋‹ค.
    • ๋ณ€์ˆ˜ newstr์ด ์ˆซ์ž๋กœ ๊ตฌ์„ฑ๋œ ๋ฌธ์ž์—ด์ด์–ด์•ผ ํ•œ๋‹ค.
    • parseLong( ) : Long ํด๋ž˜์Šค์˜ ์ •์  ๋ฉ”์„œ๋“œ๋กœ, String ํƒ€์ž…์˜ ๋ฌธ์ž์—ด์„ long ํƒ€์ž…์˜ ์ˆซ์ž๋กœ ํ˜•๋ณ€ํ™˜ํ•œ๋‹ค.