2022. 9. 30. 14:55ใAlgorithm
K๋ฒ์งธ ํฐ ์(Swift)
๋ฌธ์ ์ค๋ช
ํ์๋ 1๋ถํฐ 100์ฌ์ด์ ์์ฐ์๊ฐ ์ ํ N์ฅ์ ์นด๋๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๊ฐ์ ์ซ์์ ์นด๋๊ฐ ์ฌ๋ฌ์ฅ ์์ ์ ์์ต๋๋ค. ํ์๋ ์ด ์ค 3์ฅ์ ๋ฝ์ ๊ฐ ์นด๋์ ์ ํ ์๋ฅผ ํฉํ ๊ฐ์ ๊ธฐ๋กํ๋ ค ๊ณ ํฉ๋๋ค. 3์ฅ์ ๋ฝ์ ์ ์๋ ๋ชจ๋ ๊ฒฝ์ฐ๋ฅผ ๊ธฐ๋กํฉ๋๋ค. ๊ธฐ๋กํ ๊ฐ ์ค K๋ฒ์งธ๋ก ํฐ ์๋ฅผ ์ถ๋ ฅ ํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ธ์.
๋ง์ฝ ํฐ ์๋ถํฐ ๋ง๋ค์ด์ง ์๊ฐ 25 25 23 23 22 20 19......์ด๊ณ K๊ฐ์ด 3์ด๋ผ๋ฉด K๋ฒ์งธ ํฐ ๊ฐ ์ 22์ ๋๋ค.
โฃ ์
๋ ฅ์ค๋ช
์ฒซ ์ค์ ์์ฐ์ N(3<=N<=100)๊ณผ K(1<=K<=50) ์
๋ ฅ๋๊ณ , ๊ทธ ๋ค์ ์ค์ N๊ฐ์ ์นด๋๊ฐ์ด ์
๋ ฅ ๋๋ค.
โฃ ์ถ๋ ฅ์ค๋ช
์ฒซ ์ค์ K๋ฒ์งธ ์๋ฅผ ์ถ๋ ฅํฉ๋๋ค. K๋ฒ์งธ ์๋ ๋ฐ๋์ ์กด์ฌํฉ๋๋ค.
โฃ ์
๋ ฅ์์ 1
10 3
13 15 34 23 45 65 33 11 26 42
โฃ ์ถ๋ ฅ์์
143
๋์ ํ์ด
๋ฌธ์ ๋ฅผ ๋ณด์๋ง์ ์กฐํฉ์ ๋ ์ฌ๋ ธ๋ค.
ํ์ง๋ง "3์ฅ์ ๋ฝ์"๋ผ๋ ์กฐ๊ฑด์ ๋ณด์๋ง์ ๊ฐ๋จํ for๋ฌธ์ ๋๋ฆฌ๋ฉด ์๊ฐ์ด๊ณผ๊ฐ ์ผ์ด๋ ๊น? ๋ผ๋ ์๊ฐ๋ถํฐ ํ๋ ๊ฒ ์ข์์ ๊ฒ ๊ฐ๋ค.
๋ฌธ์ ์ ์์ ์ ๋ ฅ๊ฐ์ ๋ํด์๋ ๊ฒฐ๊ณผ๊ฐ์ด ๋ง์ง๋ง ๊ฒฐ๊ณผ์ ์ผ๋ก ๋ด๊ฐ ํ ํ์ด๋ ํ๋ ธ๋ค.
๋งจ ๋ง์ง๋ง์ "25 25 23 23 22 20 19......์ด๊ณ K๊ฐ์ด 3์ด๋ผ๋ฉด K๋ฒ์งธ ํฐ ๊ฐ ์ 22์ ๋๋ค."์ ์ค๋ณต์ ์ ๊ฑฐํ๋ค๋ ๋ป์ด๊ธฐ ๋๋ฌธ์ด๋ค.
๊ทธ๋์ ๋ฌธ์ ์ ์ ์์ฒ๋ผ for๋ฌธ + Set์๋ฃ๊ตฌ์กฐ๋ฅผ ์ด์ฉํด์ ๋ค์ ํ์ด๋ณด์๋ค
import Foundation
func combination(_ targetArr: [Int], _ k: Int) -> [[Int]] {
var results: [[Int]] = []
func cycle(_ index: Int, _ arr: [Int]) {
if arr.count == k {
results.append(arr)
return
}
for i in index..<targetArr.count {
cycle(i + 1, arr + [targetArr[i]])
}
}
cycle(0, [])
return results
}
let input = readLine()!
let results = input.components(separatedBy: " ").map{ Int($0)! }
let arrInput = readLine()!
let arrResult = arrInput.components(separatedBy: " ").map{ Int($0)! }
print(combination(arrResult, 3).map{ $0.reduce(0, +) }.sorted(by: >)[results[1]-1])
์๋ก์ด ํ์ด
import Foundation
let input = readLine()!
let results = input.components(separatedBy: " ").map{ Int($0)! }
let arrInput = readLine()!
let arrResult = arrInput.components(separatedBy: " ").map{ Int($0)! }
var answers:Set<Int> = []
print(arrResult)
for i in 0..<arrResult.count {
for j in i+1..<arrResult.count {
for z in j+1..<arrResult.count {
answers.insert(arrResult[i] + arrResult[j] + arrResult[z])
}
}
}
print(answers.map{$0}.sorted(by: >)[results[1]-1])
ํผ๋๋ฐฑ
์ค๋ณต ์ ๊ฑฐ์๋ Set์ด ์ต๊ณ ์ธ๋ฏ ํ๋ค โจ
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค - ํ๋ฌธ(Swift) (0) | 2022.10.06 |
---|---|
ํ๋ฌธ ๋ฌธ์์ด ๊ฒ์ฌ(Swift) (1) | 2022.10.05 |
์์ฃผํ์ง ๋ชปํ ์ ์ - ํ๋ก๊ทธ๋๋จธ์ค(python3) (0) | 2022.10.03 |
๋ฐฑ์ค - ์ฃผ์ฌ์๊ฒ์ 2476๋ฒ (Swift) (0) | 2022.10.03 |
๋ํ๊ฐ (2) | 2022.10.01 |