MUKER_DEV with iOS

[swift] ๋ฐฑ์ค€ - 2775๋ฒˆ: ๋ถ€๋…€ํšŒ์žฅ์ด ๋ ํ…Œ์•ผ ๋ณธ๋ฌธ

๐Ÿค– ์•Œ๊ณ ๋ฆฌ์ฆ˜/BAEKJOON

[swift] ๋ฐฑ์ค€ - 2775๋ฒˆ: ๋ถ€๋…€ํšŒ์žฅ์ด ๋ ํ…Œ์•ผ

MUKER 2023. 2. 4. 17:59
 

2775๋ฒˆ: ๋ถ€๋…€ํšŒ์žฅ์ด ๋ ํ…Œ์•ผ

์ฒซ ๋ฒˆ์งธ ์ค„์— Test case์˜ ์ˆ˜ T๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ฐ๊ฐ์˜ ์ผ€์ด์Šค๋งˆ๋‹ค ์ž…๋ ฅ์œผ๋กœ ์ฒซ ๋ฒˆ์งธ ์ค„์— ์ •์ˆ˜ k, ๋‘ ๋ฒˆ์งธ ์ค„์— ์ •์ˆ˜ n์ด ์ฃผ์–ด์ง„๋‹ค

www.acmicpc.net

๋ฌธ์ œ ํ‘ธ๋Š” ๋ฐ ์žˆ์–ด ๋„์›€์ด ๋˜๋„๋ก ๋‚˜์˜ ํ’€์ด์™€ ๊ฐœ์„ ๋œ ํ’€์ด๋ฅผ ์˜ฌ๋ฆฝ๋‹ˆ๋‹ค.
๋˜ํ•œ ํ’€์ด ํ›„ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ํ’€์ด๋ฅผ ๋ณด๊ณ  ์ฐธ๊ณ ํ• ๋งŒํ•œ ํ’€์ด๋„ ์˜ฌ๋ฆฝ๋‹ˆ๋‹ค.

- ๋ฌธ์ œ์— ๋”ฐ๋ผ ๋‚˜์˜ ํ’€์ด๋งŒ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
- ํ•ด๋‹น ํ’€์ด๋“ค์€ ํ’€์ด ์ค‘ ํ•˜๋‚˜์ผ ๋ฟ ์ตœ์„ ์˜ ํ’€์ด๋Š” ์•„๋‹ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 


 

๋ฌธ์ œ ์„ค๋ช…

 

k(์ธต) n(ํ˜ธ์ˆ˜)์— ์‚ฌ๋Š” ๊ฑฐ์ฃผ๋ฏผ์˜ ์ˆ˜๋ฅผ ๊ตฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

ํ•ด๋‹น ์ธต, ํ˜ธ์ˆ˜์— ์‚ฌ๋Š” ๊ฑฐ์ฃผ๋ฏผ์˜ ์ˆ˜๋Š”

์•„๋ž˜์ธต์— ๋™์ผํ•œ ํ˜ธ์ˆ˜์˜ ๊ฑฐ์ฃผ๋ฏผ(k-1, n) + ํ˜„์žฌ ์ธต ์ „(ํ˜„์žฌํ˜ธ์ˆ˜ - 1) ํ˜ธ์ˆ˜์˜ ๊ฑฐ์ฃผ๋ฏผ(k, n-1)

์ž…๋‹ˆ๋‹ค.

 

๊ทธ๋ ‡๋‹ค๋Š” ๊ฑด

์•„๋ž˜์ธต์— 1ํ˜ธ ~ ๋™์ผํ•œ ํ˜ธ์ˆ˜๊นŒ์ง€ ๊ฑฐ์ฃผ๋ฏผ(k-1, 0...n)์˜ ํ•ฉ์ด ๊ฐ™์€ ์ˆ˜๊ฐ€ ๋‚˜์˜ค๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

ํ•ด๋‹น ํ’€์ด๋ฅผ ์ƒ๊ฐํ•˜๊ณ  2์ฐจ์› ๋ฐฐ์—ด๋กœ ํ’€์—ˆ์Šต๋‹ˆ๋‹ค.

 


 

๋‚˜์˜ ํ’€์ด

let testCase = Int(readLine()!)!
for _ in 0..<testCase {
    let k = Int(readLine()!)! // ์ธต
    let n = Int(readLine()!)! // ํ˜ธ์ˆ˜
    var arr = [[1,2,3,4,5,6,7,8,9,10,11,12,13,14]] // 1์ธต
    while arr.count < k {
        var temp = Array(repeating: 0, count: n)
        for i in 0..<n {
            temp[i] = arr.last![0...i].reduce(0,+)
        }
        arr.append(temp)
    }
    print(arr.last![0...n-1].reduce(0,+))
}