MUKER_DEV with iOS

[swift] λ°±μ€€ - 11050번: 이항 κ³„μˆ˜ 1 λ³Έλ¬Έ

πŸ€– μ•Œκ³ λ¦¬μ¦˜/BAEKJOON

[swift] λ°±μ€€ - 11050번: 이항 κ³„μˆ˜ 1

MUKER 2023. 2. 5. 23:07
 

11050번: 이항 κ³„μˆ˜ 1

첫째 쀄에 \(N\)κ³Ό \(K\)κ°€ 주어진닀. (1 ≤ \(N\) ≤ 10, 0 ≤ \(K\) ≤ \(N\))

www.acmicpc.net

문제 ν‘ΈλŠ” 데 μžˆμ–΄ 도움이 λ˜λ„λ‘ λ‚˜μ˜ 풀이와 κ°œμ„ λœ 풀이λ₯Ό μ˜¬λ¦½λ‹ˆλ‹€.
λ˜ν•œ 풀이 ν›„ λ‹€λ₯Έ μ‚¬λžŒμ˜ 풀이λ₯Ό 보고 μ°Έκ³ ν• λ§Œν•œ 풀이도 μ˜¬λ¦½λ‹ˆλ‹€.

- λ¬Έμ œμ— 따라 λ‚˜μ˜ ν’€μ΄λ§Œ μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€.
- ν•΄λ‹Ή 풀이듀은 풀이 쀑 ν•˜λ‚˜μΌ 뿐 μ΅œμ„ μ˜ ν’€μ΄λŠ” 아닐 수 μžˆμŠ΅λ‹ˆλ‹€.

 


 

문제 μ„€λͺ…

 

이항 κ³„μˆ˜λ₯Ό κ΅¬ν•˜λŠ” λ¬Έμ œμž…λ‹ˆλ‹€.

둜 읽을 수 μžˆμŠ΅λ‹ˆλ‹€.

 

μ΄ν•­κ³„μˆ˜λ₯Ό μ΄ν•΄ν•˜κΈ° μœ„ν•΄μ„œλŠ”

파슀칼의 μ‚Όκ°ν˜•κ³Ό 이항 μ •λ¦¬μ˜ κ°œλ…μ„ 짚고 λ„˜μ–΄μ˜€μ‹œλŠ”κ±Έ μΆ”μ²œν•©λ‹ˆλ‹€.

 

μ΄ν•­κ³„μˆ˜μ˜ 곡식

 

κ°œλ…μ„ μ΄ν•΄ν•˜μ…¨λ‹€λ©΄

 

 

νŒ©ν† λ¦¬μ–Όμ„ μ‚¬μš©ν•˜μ—¬ μ΄ν•­κ³„μˆ˜λ₯Ό κ΅¬ν•˜λŠ” 곡식이 μžˆμŠ΅λ‹ˆλ‹€.

ν•΄λ‹Ή 식을 μ‚¬μš©ν•˜μ—¬ 문제λ₯Ό ν’€μ—ˆμŠ΅λ‹ˆλ‹€.

 

λ‚˜μ˜ 풀이

var NK = readLine()!.split(separator: " ").map { Int($0)! }
func factorial(num: Int) -> Int {
    guard num > 1 else { return 1 }
    var result = 1
    for i in 2...num { result = result * i }
    return result
}
print(factorial(num: NK[0]) / (factorial(num: NK[1]) * factorial(num: (NK[0] - NK[1]))))

 


 

λ‹€λ₯Έ ν˜•νƒœμ˜ νŒ©ν† λ¦¬μ–Ό

func factorial(num: Int) -> Int{
    if num <= 1 { return 1 }
    return num * factorial(x-1)
}
(1...Int(readLine()!)!).reduce(1,*)

 

λ‹€μ–‘ν•˜κ²Œ νŒ©ν† λ¦¬μ–Όμ„ κ΅¬ν˜„ν•  수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€.

 

λ‹€λ₯΄κ²ŒλŠ”

λ‹€μ΄λ‚˜λ―Ή ν”„λ‘œκ·Έλž˜λ° κΈ°λ²•μœΌλ‘œ

 

let nm = readLine()!.split(separator: " ").map{Int($0)!}
var arr = Array(repeating: 1, count: 20)
for i in 1...nm[0] {
    let tmp = arr
    for j in 1..<i {
        arr[j] = tmp[j] + tmp[j-1]
    }
}
print(arr[nm[1]])

 

νŒ©ν† λ¦¬μ–Ό ν•¨μˆ˜λ₯Ό λ”°λ‘œ λ§Œλ“€μ§€ μ•Šκ³ 

λ©”λͺ¨λ¦¬λ₯Ό μ‚¬μš©ν•˜μ—¬ ν”Όλ³΄λ‚˜μΉ˜ μˆ˜μ—΄μ„ μ €μž₯ν•˜κ³ 

μ›ν•˜λŠ” 값을 뽑아 μ“Έ 수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€.