쥐수의 공부노트

백준 1010번 다리 놓기 본문

swift 알고리즘/조합론

백준 1010번 다리 놓기

쥐수 2023. 6. 3. 20:13
728x90

정답 : 

var array = Array(repeating: Array(repeating: 0, count: 31), count: 31)
var result : [Int] = []
for i in 0...30 {
    for j in 0...i {
        if i == j || j == 0 {
            array[i][j] = 1
        }
        else {
            array[i][j] = array[i-1][j-1] + array[i-1][j]
        }
    }
}

let n = Int(readLine()!)!

for _ in 0..<n {
    let input = readLine()!.split(separator: " ").map{Int($0)!}
    let k = input[0]
    let t = input[1]
    result.append(array[t][k])
}
result.forEach{print($0)}
더보기

TMI : DP로 풀었지만, 난 왜 이런 점화식이 나온건지 아직도 이해 불가.. 이게 왜 실버5..?

설명하고 싶지만, 작성자가 멍청해서 점화식 자체가 이해되지 않는다..

 

나중에 다시 보겠다...

 

알고보니, 내가 문제를 잘못 이해했다. 다리가 서로 겹치지 않는다는 조건이, x자 크로스가 되면 안된다라는 것인줄 알았다..

 

겹친다는 것은, 한 목적지에 여러 다리가 있으면 안된다는 것..

728x90

'swift 알고리즘 > 조합론' 카테고리의 다른 글

백준 11050번 이항 계수 1  (0) 2023.06.01
백준 10872번 팩토리얼1  (0) 2023.06.01
백준 24723번 녹색 거탑  (0) 2023.06.01
백준 15439번 베라의 패션  (0) 2023.06.01