๋ฐฑ์ค - 30(Swift)
๋ฐฑ์ค - 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())
}
๋์ ํ์ด
์ด๋ฐ ์ ํ์ ๋ฌธ์ ๋ ๊ณต์ฑ ์ ์ ์ผ๋ฉด์ ๊ท์น์ ์ฐพ๋๊ฒ ์ค์ํ ๊ฒ ๊ฐ๋ค. ์ต๊ด์ ๋ค์ฌ์ผ๊ฒ ๋ค.