λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
πŸ“– Problem Solution/Programmers

ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ μ˜ˆμ‚° Swift

by Fomagran πŸ’» 2020. 3. 1.
728x90
λ°˜μ‘ν˜•

λ¬Όν’ˆμ„ ꡬ맀해 쀄 λ•ŒλŠ” 각 λΆ€μ„œκ°€ μ‹ μ²­ν•œ κΈˆμ•‘λ§ŒνΌμ„ λͺ¨λ‘ 지원해 μ€˜μ•Ό ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ 1,000원을 μ‹ μ²­ν•œ λΆ€μ„œμ—λŠ” μ •ν™•νžˆ 1,000원을 지원해야 ν•˜λ©°, 1,000원보닀 적은 κΈˆμ•‘μ„ 지원해 쀄 μˆ˜λŠ” μ—†μŠ΅λ‹ˆλ‹€.

λΆ€μ„œλ³„λ‘œ μ‹ μ²­ν•œ κΈˆμ•‘μ΄ λ“€μ–΄μžˆλŠ” λ°°μ—΄ d와 μ˜ˆμ‚° budget이 λ§€κ°œλ³€μˆ˜λ‘œ μ£Όμ–΄μ§ˆ λ•Œ, μ΅œλŒ€ λͺ‡ 개의 λΆ€μ„œμ— λ¬Όν’ˆμ„ 지원할 수 μžˆλŠ”μ§€ return ν•˜λ„λ‘ solution ν•¨μˆ˜λ₯Ό μ™„μ„±ν•΄μ£Όμ„Έμš”.

μ œν•œμ‚¬ν•­

  • dλŠ” λΆ€μ„œλ³„λ‘œ μ‹ μ²­ν•œ κΈˆμ•‘μ΄ λ“€μ–΄μžˆλŠ” 배열이며, 길이(전체 λΆ€μ„œμ˜ 개수)λŠ” 1 이상 100 μ΄ν•˜μž…λ‹ˆλ‹€.
  • d의 각 μ›μ†ŒλŠ” λΆ€μ„œλ³„λ‘œ μ‹ μ²­ν•œ κΈˆμ•‘μ„ λ‚˜νƒ€λ‚΄λ©°, λΆ€μ„œλ³„ μ‹ μ²­ κΈˆμ•‘μ€ 1 이상 100,000 μ΄ν•˜μ˜ μžμ—°μˆ˜μž…λ‹ˆλ‹€.
  • budget은 μ˜ˆμ‚°μ„ λ‚˜νƒ€λ‚΄λ©°, 1 이상 10,000,000 μ΄ν•˜μ˜ μžμ—°μˆ˜μž…λ‹ˆλ‹€.

μž…μΆœλ ₯ 예

d budget result
[1,3,2,5,4] 9 3
[2,2,3,3] 10 4

풀이:μš°μ„  μ§€μ›ν•œ κΈˆμ•‘μ„ μ˜ˆμ‚°μ— 맞게 μ΅œλŒ€λ‘œ λ°°μΉ˜ν•˜λ €λ©΄ μž‘κ²Œ μ§€μ›ν•œ κΈˆμ•‘λΆ€ν„° μ°¨λ‘€λ‘œ λ„£μ–΄μ•Όν•˜λ―€λ‘œ μš°μ„  d.sortedλ₯Ό ν•΄μ„œ μž‘μ€ μˆ˜λΆ€ν„° μ •λ ¬ν•΄μ€€λ‹€.

그리고 xλŠ” 도와쀄 수 μžˆλŠ” λΆ€μ„œμ˜ 갯수 sum은 μ˜ˆμ‚°μ„ λ”ν•˜λŠ” κ²ƒμœΌλ‘œ λ³€μˆ˜λ₯Ό 각 각 λ§Œλ“€μ–΄μ€€ λ’€

whileλ¬Έμ—” μ§€μ›ν•œ κΈˆμ•‘μ΄ μ˜ˆμ‚°λ³΄λ‹€ μž‘μ„ λ•Œλ§Œ sum에 μ˜ˆμ‚°μ„ λ”ν•œλ‹€. 그리고 컀질 경우 x-1을 ν•΄μ£ΌλŠ” μ΄μœ λŠ” 항상 x+1을 λ§ˆμ§€λ§‰μ— ν•΄μ£ΌκΈ° λ•Œλ¬Έμ΄λ‹€.

μ˜ˆμ‚°μ΄ λ‚¨λŠ” κ²½μš°μ—” while문이 끝날 수 μ—†μœΌλ―€λ‘œ x+1이 λΆ€μ„œμ˜ κ°―μˆ˜λ³΄λ‹€ 크닀면 while문을 λ©ˆμΆ”κ²Œ ν•œλ‹€.

그리고 xλ₯Ό λ°˜ν™˜ν•˜λ©΄ μ΅œλŒ€λ‘œ 도와쀄 수 μžˆλŠ” λΆ€μ„œμ˜ κ°―μˆ˜κ°€ λ‚˜μ˜¨λ‹€.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import Foundation
 
func solution(_ d:[Int], _ budget:Int-> Int {
    let sortd = d.sorted()
    var x = 0
    var sum = 0
    while sum < budget {
        sum += sortd[x]
        if sum > budget{
            x -= 1
        }
        x += 1
        if x+1 > d.count {
            break
        }
       
    }
    return x
}
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
728x90
λ°˜μ‘ν˜•

λŒ“κΈ€