1. ๋ฌธ์
2. ์ ์ถ๋ ฅ
3. ์ ์ถ๋ ฅ ์์
4. ๋ฌธ์ ์ค๊ณ
- ๋ฌธ์ ์ ํฌ๊ธฐ๊ฐ 1,000,000 ์ด๋ฏ๋ก 1,000,000 ํฉํ ๋ฆฌ์ผ์ ์ฐ์ฐํ ์ ์์ ๋ฟ๋๋ฌ ์ ์ฅํ ์ ์๋ ์ ์๋ฃํ๋ ์์
- ๋ฐ๋ผ์, ๋ค๋ฅธ ์์ ์ผ๋ก ์ ๊ทผ์ ํด์ผํจ
- ๋์๋ฆฌ 0์ ๊ฐ์๋ 10์ ๊ฑฐ๋ญ์ ๊ณฑ ์ฆ, 2์ 5์ ๊ณฑ์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๊ธฐ ๋๋ฌธ์ n ๊ณผ m์ ๋ํ์ฌ 2์ 5๋ก ๊ฐ๊ฐ ๋ชซ์ด 1์ด ๋ ๋ ๊น์ง ๋๋๋ฉด์ 2์ 5์ ๊ฐ์๋ฅผ ์ ์ฅํจ
- ๋ง์ฐฌ๊ฐ์ง๋ก, Combination์ ๊ณต์์ ์ํด m๊ณผ n-m์ ๋ํด์๋ 2์ 5์ ๊ฐ์๋ฅผ ์ ์ฅํจ
- 2์ 5์ ๊ณฑ์ ์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๊ณ , Combination ๊ณต์์ ์ํด n์ 2์ ๊ฐ์ ๋ฐ 5์ ๊ฐ์์์ m๊ณผ n-m์ 2์ ๊ฐ์ ๋ฐ 5์ ๊ฐ์๋ฅผ ์ ์ธ์์ผ์ค
- 10์ 2์ 5์ ์ง์ด ๋ง์์ผ ํ๋ฏ๋ก ์ต์ข ์ ์ผ๋ก ๊ตฌํ 2์ 5์ ๊ฐ์์ค ๋ ์์ ๊ฐ์ ๊ตฌํจ์ผ๋ก์จ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํจ
5. ์ ์ฒด ์ฝ๋
//
// main.swift
// CombinationZero
//
// Created by ์ด์์ฌ on 2022/03/08.
//MARK: - combinationzero
//MARK: - Framework
import Foundation
//MARK: - Function
func getNumberTwoCount(_ number: Int) -> Int {
var numberTwo = 2
var count: Int = 0
while numberTwo <= number {
count += number / numberTwo
numberTwo *= 2
}
return count
}
func getNumberFiveCount(_ number: Int) -> Int {
var numberFive: Int = 5
var count: Int = 0
while numberFive <= number {
count += number / numberFive
numberFive *= 5
}
return count
}
func solution() -> Void {
//MARK: - Input
guard let input = readLine()?.components(separatedBy: " ") else { return }
let n: Int = input.map { Int($0) }[0] ?? 0
let m: Int = input.map { Int($0) }[1] ?? 0
var answer: Int = 0
var numberTwoCountN: Int = 0
var numberFiveCountN: Int = 0
var numberTwoCountM: Int = 0
var numberFiveCountM: Int = 0
var numberTwoCountNM: Int = 0
var numberFiveCountNM: Int = 0
var numberTwoCount: Int = 0
var numberFiveCount: Int = 0
//MARK: - Process
numberTwoCountN = getNumberTwoCount(n)
numberFiveCountN = getNumberFiveCount(n)
numberTwoCountM = getNumberTwoCount(m)
numberFiveCountM = getNumberFiveCount(m)
numberTwoCountNM = getNumberTwoCount(n - m)
numberFiveCountNM = getNumberFiveCount(n - m)
numberTwoCount = numberTwoCountN - numberTwoCountM - numberTwoCountNM
numberFiveCount = numberFiveCountN - numberFiveCountM - numberFiveCountNM
answer = numberTwoCount > numberFiveCount ? numberFiveCount : numberTwoCount
//MARK: - Output
print(answer)
}
solution()
์ ์ฒด์ฝ๋๋ ์ฌ๊ธฐ์์ ํ์ธํ ์ ์์ต๋๋ค.
'Swift Data Structure And Algorithm > Basic Number Theory' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
fmttalpha (0) | 2022.03.08 |
---|---|
streetree (0) | 2022.03.08 |
combinationpascal (0) | 2022.03.08 |
beehive (0) | 2022.03.08 |
findprime (0) | 2022.03.08 |