πŸ—οΈ Algorithm/🟦 이것이 취업을 μœ„ν•œ μ½”λ”©ν…ŒμŠ€νŠΈ

[이것이 취업을 μœ„ν•œ μ½”λ”© ν…ŒμŠ€νŠΈ] [그리디] [Python] λ§Œλ“€ 수 μ—†λŠ” κΈˆμ•‘

Dbswnstjd 2022. 4. 6. 22:18

문제

N개의 동전이 μ£Όμ–΄μ§ˆ λ•Œ, 이 λ™μ „λ“€λ‘œ λ§Œλ“€ 수 μ—†λŠ” μ–‘μ˜ μ •μˆ˜ κΈˆμ•‘ 쀑 μ΅œμ†Ÿκ°’μ„ κ΅¬ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€.

μž…λ ₯

첫째 μ€„μ—λŠ” λ™μ „μ˜ 개수λ₯Ό λ‚˜νƒ€λ‚΄λŠ” μ–‘μ˜ μ •μˆ˜ N이 주어진닀. (1 <= N <= 1,000)
λ‘˜μ§Έ μ€„μ—λŠ” 각 λ™μ „μ˜ 화폐 λ‹¨μœ„λ₯Ό λ‚˜νƒ€λ‚΄λŠ” N개의 μžμ—°μˆ˜κ°€ 주어지며 각 μžμ—°μˆ˜λŠ” 곡백으둜 κ΅¬λΆ„λœλ‹€. 각 화폐 λ‹¨μœ„λŠ” 1,000,000 μ΄ν•˜μ˜ μžμ—°μˆ˜μ΄λ‹€.

좜λ ₯

첫째 쀄에 μ£Όμ–΄μ§„ λ™μ „λ“€λ‘œ λ§Œλ“€ 수 μ—†λŠ” μ–‘μ˜ μ •μˆ˜ κΈˆμ•‘ 쀑 μ΅œμ†Ÿκ°’μ„ 좜λ ₯ν•œλ‹€.

풀이

# μ—°μŠ΅λ¬Έμ œ - 그리디 - λ§Œλ“€ 수 μ—†λŠ” κΈˆμ•‘
n = int(input())
data = list(map(int, input().split()))
data.sort()

target = 1
for x in data:
    # λ§Œλ“€ 수 μ—†λŠ” κΈˆμ•‘μ„ μ°Ύμ•˜μ„ λ–„ 반볡 μ’…λ£Œ
    if target < x:
        break
    target += x

# λ§Œλ“€ 수 μ—†λŠ” κΈˆμ•‘ 좜λ ₯
print(target)