ํ์ด
์์ฒญ ํฐ ์์ ํฉํ ๋ฆฌ์ผ์ ์ถ๋ ฅํ๋ ๋ฌธ์ ๋ค.
์๊ฐ ๋๋ฌด ํฌ๊ธฐ ๋๋ฌธ์ ์๋ฅผ ๋ฐฐ์ด๋ก ๋๋ ์ ํ์ด์ผํ๋ค.
temp๋ผ๋ ์์๋ฐฐ์ด์ ์ญ์์ผ๋ก ์ํํ๋ฉด์ ํ์ฌ ์ซ์์ ์ด์ ๋จ๊ณ์์์ ๋๋จธ์ง๋ฅผ ๋ํ๋ค.
๊ทธ ์ดํฉ์ 10์ผ๋ก ๋๋ ๋ชซ์ด ์๋ก์ด ๋๋จธ์ง๊ฐ ๋๋ค.
์๋ก์ด ๋๋จธ์ง๋ฅผ ๋ฌธ์์ด๋ก ๋ณํํ์ฌ result ๋ฌธ์์ด์ ์์ชฝ์ ์ฝ์ ํ๋ค.
์ด๊ฒ์ ์ฌ๊ท๋ก ๋ฐ๋ณตํ์ฌ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋ค.
์ฝ๋
func extraLongFactorials(n: Int) -> Void {
// Write your code here
var result = "1"
for num in 1...n {
result = multiply(result, by: num)
}
print(result)
}
func multiply(_ a: String, by: Int) -> String {
let temp: [Int] = Array(a).map { Int(String($0))! * by}
var result = ""
var remainer = 0
for number in temp.reversed() {
let total = number + remainer
remainer = total / 10
result.insert(Character(String(total % 10)), at: result.startIndex)
}
while remainer > 0 {
result.insert(Character(String(remainer % 10)), at: result.startIndex)
remainer /= 10
}
return result
}
๋ฐ์ํ
'๐ ์ฝํ > HackerRank' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๊ตฌํ] Picking Numbers (0) | 2023.05.15 |
---|---|
[๊ตฌํ] Climbing the Leaderboard (0) | 2023.05.15 |