๋ฐฑ์ค€ - 30(Swift)

2022. 10. 24. 10:09ใ†Algorithm

๋ฐฑ์ค€ - 30(Swift)

 

 

 ๋ฌธ์ œ ์„ค๋ช…

 

https://www.acmicpc.net/problem/10610

 

10610๋ฒˆ: 30

์–ด๋Š ๋‚ , ๋ฏธ๋ฅด์ฝ”๋Š” ์šฐ์—ฐํžˆ ๊ธธ๊ฑฐ๋ฆฌ์—์„œ ์–‘์ˆ˜ N์„ ๋ณด์•˜๋‹ค. ๋ฏธ๋ฅด์ฝ”๋Š” 30์ด๋ž€ ์ˆ˜๋ฅผ ์กด๊ฒฝํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ๊ทธ๋Š” ๊ธธ๊ฑฐ๋ฆฌ์—์„œ ์ฐพ์€ ์ˆ˜์— ํฌํ•จ๋œ ์ˆซ์ž๋“ค์„ ์„ž์–ด 30์˜ ๋ฐฐ์ˆ˜๊ฐ€ ๋˜๋Š” ๊ฐ€์žฅ ํฐ ์ˆ˜๋ฅผ ๋งŒ๋“ค๊ณ  ์‹ถ์–ดํ•œ

www.acmicpc.net

 

 

 ๋‚˜์˜ ํ’€์ด

 

์ฒ˜์Œ ๋‚˜์˜ ํ’€์ด

 

import Foundation

var arr = readLine()!.map{String($0)}

arr.sort(by: >)

let result = arr.reduce("", {$0 + $1})
if Int(result)! % 30 == 0 {
    print(result)
} else {
    print(-1)
}

 

 

30์˜ ๋ฐฐ์ˆ˜๋ฅผ ๋‚˜์—ดํ•ด๋ณด๋‹ˆ ์ „๋ถ€ 30์œผ๋กœ ๋‚˜๋ˆ ๋–จ์–ด์ง€๋ฉด์„œ ๋์˜ 0์„ ์ œ์™ธํ•œ ๋‹ค๋ฅธ ์ˆซ์ž๋“ค์„ ๋ฐ”๊ฟ”๋„ 30์˜ ๋ฐฐ์ˆ˜๋ผ๋Š” ๊ฒƒ์„ ์•Œ์•˜๋‹ค.

๊ทธ๋ž˜์„œ ์ •๋ ฌํ•˜๊ณ  30์œผ๋กœ ๋‚˜๋จธ์ง€๊ฐ€ 0์ผ๋•Œ ์ถœ๋ ฅํ•˜๋„๋ก ํ–ˆ๋Š”๋ฐ ๋Ÿฐํƒ€์ž„์—๋Ÿฌ๊ฐ€ ๋‚˜์™”๋‹ค.

 

์ด ๋Ÿฐํƒ€์ž„์—๋Ÿฌ๋Š” n์˜ ๋ฒ”์œ„๊ฐ€ 100,000์ด ๋  ์ˆ˜๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— 10๋งŒ๊ฐœ๊ฐ€ ๋„˜๋Š” ์ˆซ์ž๋Š” Intํ˜•์œผ๋กœ ๋ฐ”๋€” ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์ด์˜€๋‹ค. 

 

๊ทธ๋ž˜์„œ ๋‹ค๋ฅธ๋ฐฉ์•ˆ์„ ๋ชจ์ƒ‰ํ•ด์•ผํ–ˆ๋‹ค.

 

30์˜ ๋ฐฐ์ˆ˜์˜ ํŠน์ง•์€ ์ด๋ ‡๋‹ค. ๋ชจ๋“ ์ˆซ์ž๋ฅผ ๋”ํ–ˆ์„๋•Œ 3์˜ ๋ฐฐ์ˆ˜์ด๋ฉด์„œ ๋์˜ ์ž๋ฆฌ๊ฐ€ 0์ด๋‹ค.

 

์ด ๊ทœ์น™์„ ์•Œ๋ฉด ๋ฌธ์ œ๋Š” ์‰ฝ๊ฒŒ ํ’€๋ฆฐ๋‹ค.

 

var arr = readLine()!.map{String($0)}

arr.sort(by: >)
let sum = arr.reduce(0, {$0 + Int($1)!})
if arr.last! != "0" || sum % 3 != 0 {
    print(-1)
} else {
    print(arr.joined())
}

 

 ๋‚˜์˜ ํ’€์ด

 

์ด๋Ÿฐ ์œ ํ˜•์˜ ๋ฌธ์ œ๋Š” ๊ณต์ฑ…์— ์ ์œผ๋ฉด์„œ ๊ทœ์น™์„ ์ฐพ๋Š”๊ฒŒ ์ค‘์š”ํ•œ ๊ฒƒ ๊ฐ™๋‹ค. ์Šต๊ด€์„ ๋“ค์—ฌ์•ผ๊ฒ ๋‹ค.