MUKER_DEV with iOS

[Swift] Programmers_Lv1 ์ •์ˆ˜ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ๋ฐฐ์น˜ํ•˜๊ธฐ ๋ณธ๋ฌธ

๐Ÿค– ์•Œ๊ณ ๋ฆฌ์ฆ˜/programmers

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

MUKER 2022. 6. 22. 14:32
์ œ ๋ฌธ์ œ ํ’€์ด๋Š” ์ตœ์„ ์˜ ํ’€์ด๊ฐ€ ์•„๋‹ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๋ฅผ ํ‘ธ๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค์–‘ํ•ฉ๋‹ˆ๋‹ค!

๋ฌธ์ œ์„ค๋ช…

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

์ œํ•œ ์กฐ๊ฑด

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

์ž…์ถœ๋ ฅ ์˜ˆ

n return
118372 873211

๋ฌธ์ œ ๋ถ„์„

1. sorted() ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ฐฐ์—ด ๋ฐ ๋ฌธ์ž์—ด์„ ์ •๋ ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2. ์ •๋ ฌ๋œ ๋ฌธ์ž์—ด์„ ์ •์ˆ˜๋กœ ๋ฆฌํ„ดํ•ด ๋ฌธ์ œ๋ฅผ ํ’‰๋‹ˆ๋‹ค.

 

Solution.swift

func solution(_ n:Int64) -> Int64 {
    
    // ์ž…๋ ฅ๋œ ์ •์ˆ˜๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜์‹œ์ผœ ๋ณ€์ˆ˜์— ๋‹ด์•„์ค๋‹ˆ๋‹ค.
    var str = String(n)
    
    // ๋ณ€ํ™˜๋œ ๋ฌธ์ž์—ด์„ sorted๋กœ ์ •๋ ฌ์‹œ์ผœ ์ค๋‹ˆ๋‹ค.
    // ๋ฌธ์ž์—ด์—์„œ sorted๋Š” ์žˆ์ง€๋งŒ sort๋Š” ์—†์Šต๋‹ˆ๋‹ค.
    // sorted(by: >)๋Š” ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ ์‹œ์ผœ์ค๋‹ˆ๋‹ค.
    // ๋””ํดํŠธ ๊ฐ’์€ ์˜ค๋ฆ„์ฐจ์ˆœ์ด๊ณ  sorted(by: <)๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    
    // Swift๋Š” ์นœ์ ˆํ•˜๊ฒŒ๋„ sorted๋กœ ๋ณ€ํ™˜์‹œ์ผœ ์ฃผ๋ฉด์„œ ๋ฐฐ์—ด๋กœ ๋ฐ˜ํ™˜์‹œ์ผœ์ค๋‹ˆ๋‹ค.
    // ์ง€๊ธˆ์€ ์ •์ˆ˜๋กœ ๋ฐ”๊พธ๊ธฐ์œ„ํ•ด ๋ฌธ์ž์—ด๋กœ ํ•œ๋ฒˆ๋” ๋ณ€ํ™˜์‹œ์ผœ ๋ณ€์ˆ˜์— ๋‹ด์•„์ค๋‹ˆ๋‹ค.
    var sorted = String(str.sorted(by: >))
    
    // ๋ณ€ํ™˜๋œ ๋ฌธ์ž์—ด sorted๊ฐ’์„ ์ •์ˆ˜ํ˜•์œผ๋กœ ๋ฐ”๊ฟ”์„œ ๋ฆฌํ„ด์‹œ์ผœ์ค๋‹ˆ๋‹ค.
    return Int64(sorted)!
}

 

Progremmers Best Solution

func solution(_ n:Int64) -> Int64 {
    return Int64(String(Array(String(n)).sorted { $0 > $1 }))!
}

// ์œ„์—์„œ๋„ ๋งํ–ˆ์ง€๋งŒ Array๋กœ ์ €์ ˆ๋กœ ๊ฐ์‹ธ์ง€๊ธฐ ๋•Œ๋ฌธ์—
    return Int64(String(String(n).sorted(by: >)))!
//์ด๋Ÿฐ์‹์œผ๋กœ๋„ ๊ฐ€๋Šฅ