youngjaeLee1026
2022. 3. 8. 22:28
1. λ¬Έμ
2. μ μΆλ ₯
3. μ μΆλ ₯ μμ
4. λ¬Έμ μ€κ³
- κ° λ무μ μμΉλ₯Ό λνλ΄λ μ μλ λͺ¨λ λ€λ₯΄κ³ , κ°κΉμ΄ μμΉ(μ€λ¦μ°¨μ)λ‘ μ£Όμ΄μ§
- λ°λΌμ κ° μ μμ μ°¨μ λν μ΅λ곡μ½μκ° κ°μ κ°κ²©μΌλ‘ μ΅μνμ λ무λ₯Ό μ¬μ μ μλ κ°μμ μ μ μμ
- κ°λ‘μμ μμΉλ₯Ό λνλ΄λ μ μμ μ΅κ³ ν¬κΈ°κ° 1,000,000,000 μ΄λ―λ‘, μμ νμμΌλ‘ ν΄λΉ λλ¬΄κ° μ¬μ΄μ Έ μλμ§ νμΈ νκΈ° μν΄ μ΅μ μ κ²½μ° O(N)μΌλ‘(μ΅λ곡μ½μκ° 1μΈ κ²½μ°) λ¬Έμ λ₯Ό ν΄κ²°ν κ²½μ°, μκ° λ΄μ ν΄κ²°νμ§ λͺ»ν μ μμ
- λ°λΌμ, μ£Όμ΄μ§ μ μ μ€ μ΅λκ°κ³Ό μ΅μκ°μ μ°¨μ΄λ₯Ό κ°μ κ°κ²©(μ΅λ곡μ½μ)λ‘ λλκ² λλ©΄, μ΅λλ‘ νμν κ°κ²©μ ꡬν μ μκ³ + 1μ νκ² λλ©΄ μ΄ λ무μ κ°μλ₯Ό ꡬν μ μμ.
- μ΄λ―Έ μ¬μ΄μ Έ μλ λ무μ κ°μλ λ¬Έμ μμ μ£Όμ΄μ‘μΌλ―λ‘ μ 4λ²μμ ꡬν κ°μμ N(μ΄λ―Έ μ¬μ΄μ Έ μλ λ무μ κ°μ)μ μ μΈμν΄μΌλ‘μ¨ λ¬Έμ λ₯Ό ν΄κ²°ν μ μμ
5. μ 체 μ½λ
//
// main.swift
// Streetree
//
// Created by μ΄μμ¬ on 2022/03/08.
//MARK: - streetree
//MARK: - Framework
import Foundation
//MARK: - Function
func getGCD(_ A: Int, _ B: Int) -> Int {
return A % B == 0 ? B : getGCD(B, A % B)
}
func solution() -> Void {
//MARK: - Input
guard let N: Int = Int(readLine() ?? "0") else { return }
var answer: Int = 0
var difference: Int
var trees: [Int] = []
var differences: [Int] = Array(repeating: 0, count: N + 10)
for _ in 0..<N {
guard let tree: Int = Int(readLine() ?? "0") else { return }
trees.append(tree)
}
//MARK: - Process
for i in 1..<N {
differences[i - 1] = trees[i] - trees[i - 1]
}
difference = differences[0]
for i in 1..<(N - 1) {
difference = getGCD(difference, differences[i])
}
answer = (trees[N - 1] - trees[0]) / difference + 1 - N
//MARK: - Output
print(answer)
}
solution()
μ 체μ½λλ μ¬κΈ°μμ νμΈν μ μμ΅λλ€.