MUKER_DEV with iOS

[swift]λ°±μ€€ - 2798번: λΈ”λž™μž­ λ³Έλ¬Έ

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

[swift]λ°±μ€€ - 2798번: λΈ”λž™μž­

MUKER 2023. 2. 2. 00:58
 

2798번: λΈ”λž™μž­

첫째 쀄에 μΉ΄λ“œμ˜ 개수 N(3 ≤ N ≤ 100)κ³Ό M(10 ≤ M ≤ 300,000)이 주어진닀. λ‘˜μ§Έ μ€„μ—λŠ” μΉ΄λ“œμ— μ“°μ—¬ μžˆλŠ” μˆ˜κ°€ 주어지며, 이 값은 100,000을 λ„˜μ§€ μ•ŠλŠ” μ–‘μ˜ μ •μˆ˜μ΄λ‹€. 합이 M을 λ„˜μ§€ μ•ŠλŠ” μΉ΄λ“œ 3μž₯

www.acmicpc.net

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

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

 


 

문제 μ„€λͺ…

 

 


 

λ‚˜μ˜ 풀이

var NM = readLine()!.split(separator: " ").map { Int($0)! }
var card = readLine()!.split(separator: " ").map { Int($0)! }.sorted()
var result = [Int]()
main: for i in 0..<NM[0] {
    for j in i+1..<NM[0] {
        for k in j+1..<NM[0] {
            let sum = card[i]+card[j]+card[k]
            if sum <= NM[1] {
                if sum == NM[1] {
                    result.removeAll()
                    result.append(sum)
                    break main
                } else {
                    result.append(sum)
                }
            }
        }
    }
}
print(result.max()!)

 

3쀑첩 반볡문이라 μ‹œκ°„μ΄ˆκ³Όκ°€ 날쀄 μ•Œμ•˜μ§€λ§Œ 잘 ν†΅κ³Όν–ˆμŠ΅λ‹ˆλ‹€.

 

λ‹€λ₯Έ 쒋은 풀이방법이 μžˆλ‚˜ μ°Ύμ•„λ΄€μ§€λ§Œ

거의 λΉ„μŠ·ν•œ λ°©λ²•μœΌλ‘œ ν’€μ—ˆλ„€μš”.