๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“– Problem Solution/Programmers

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๊ฐ€์žฅ ํฐ ์ˆ˜ Swift

by Fomagran ๐Ÿ’ป 2020. 4. 27.
728x90
๋ฐ˜์‘ํ˜•
  • ๊ฐ€์žฅ ํฐ ์ˆ˜
  • darklight

    sublimevimemacs

    Swift 

๋ฌธ์ œ ์„ค๋ช…

0 ๋˜๋Š” ์–‘์˜ ์ •์ˆ˜๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ •์ˆ˜๋ฅผ ์ด์–ด ๋ถ™์—ฌ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ํฐ ์ˆ˜๋ฅผ ์•Œ์•„๋‚ด ์ฃผ์„ธ์š”.

์˜ˆ๋ฅผ ๋“ค์–ด, ์ฃผ์–ด์ง„ ์ •์ˆ˜๊ฐ€ [6, 10, 2]๋ผ๋ฉด [6102, 6210, 1062, 1026, 2610, 2106]๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ณ , ์ด์ค‘ ๊ฐ€์žฅ ํฐ ์ˆ˜๋Š” 6210์ž…๋‹ˆ๋‹ค.

0 ๋˜๋Š” ์–‘์˜ ์ •์ˆ˜๊ฐ€ ๋‹ด๊ธด ๋ฐฐ์—ด numbers๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ์ˆœ์„œ๋ฅผ ์žฌ๋ฐฐ์น˜ํ•˜์—ฌ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ํฐ ์ˆ˜๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋ฐ”๊พธ์–ด return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.

์ œํ•œ ์‚ฌํ•ญ

  • numbers์˜ ๊ธธ์ด๋Š” 1 ์ด์ƒ 100,000 ์ดํ•˜์ž…๋‹ˆ๋‹ค.
  • numbers์˜ ์›์†Œ๋Š” 0 ์ด์ƒ 1,000 ์ดํ•˜์ž…๋‹ˆ๋‹ค.
  • ์ •๋‹ต์ด ๋„ˆ๋ฌด ํด ์ˆ˜ ์žˆ์œผ๋‹ˆ ๋ฌธ์ž์—ด๋กœ ๋ฐ”๊พธ์–ด return ํ•ฉ๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

numbers return
[3, 30, 34, 5, 9] 9534330
[6, 10, 2] 6210

ํ’€์ด:

numbers์˜ ์ˆซ์ž๋ฅผ ๋ฌธ์ž๋กœ ๋ณ€ํ˜•ํ•œ ๋‹ค์Œ

๊ทธ ๋‹ค์Œ ์ˆซ์ž๊ฐ€ ์•ž์— ๋ถ™์˜€์„ ๋–„์™€ ๋’ค์— ๋ถ™์˜€์„ ๋•Œ๋ฅผ ๋น„๊ตํ•ด ๋” ํฐ ๊ฐ’์œผ๋กœ ์ •๋ ฌํ•ด์ค€๋‹ค.

๊ทธ ๋‹ค์Œ์— ์ •๋ ฌํ•œ ๋ฐฐ์—ด์„ ํ•˜๋‚˜์˜ ๋ฌธ์ž๋กœ ์—ฐ๊ฒฐ์‹œ์ผœ์„œ ๋ฐ˜ํ™˜ํ•ด์ค€๋‹ค.

ํ•˜์ง€๋งŒ ๋ชจ๋“  ์ˆ˜๊ฐ€ 0์ผ ๊ฒฝ์šฐ 0000์ด ์•„๋‹Œ 0์œผ๋กœ ๋‚˜์™€์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์—

๋งจ ์•ž์˜ ์ธ๋ฑ์Šค๊ฐ€ 0์ผ ๊ฒฝ์šฐ์—๋งŒ "0"์œผ๋กœ ์ถœ๋ ฅํ•ด์ค€๋‹ค.

1
2
3
4
5
6
7
import Foundation
 
func solution(_ numbers:[Int]) -> String{
    let sort = numbers.sorted{Int("\($0)\($1)")! > Int("\($1)\($0)")!}
    return sort[0== 0 ? "0" : sort.map{String($0)}.joined()
}
 
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
์ด๊ฑด ์™œ 1,2,3,5,6์ด ์‹œ๊ฐ„์ดˆ๊ณผ๋กœ ๋œฐ๊นŒ?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import Foundation
 
func solution(_ numbers:[Int]) -> String{
    var answer = [String]()
    outer : for i in 0..<numbers.count{
        if !answer.isEmpty{
        for j in 0..<answer.count{
            if Int("\(numbers[i])\(answer[j])")! >= Int("\(answer[j])\(numbers[i])")!{
                answer.insert(String(numbers[i]), at: j)
                continue outer
            }
        }
    }
        answer.append(String(numbers[i]))
    }
    if answer[0== "0"{
        return "0"
    }
    return answer.joined()
}
 
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
728x90
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€