<๋ฌธ์ ๋งํฌ>
https://www.acmicpc.net/problem/2437
2437๋ฒ: ์ ์ธ
ํ๋์ ์ํ ์ ์ธ์ ์ด์ฉํ์ฌ ๋ฌผ๊ฑด์ ๋ฌด๊ฒ๋ฅผ ์ธก์ ํ๋ ค๊ณ ํ๋ค. ์ด ์ ์ธ์ ์ ํ์ ๋์๋ ๋ฌผ๊ฑด์ด๋ ์ถ๋ฅผ ์ฌ๋ ค๋๋ ์ ์๊ฐ ๋ฌ๋ ค ์๊ณ , ์ํ์ ๊ธธ์ด๋ ๊ฐ๋ค. ๋ํ, ์ ์ธ์ ํ์ชฝ์๋ ์ ์ธ์ถ๋ค๋ง ๋
www.acmicpc.net
<ํ์ด ์ ๋ต>
- ๊ทธ๋ฆฌ๋ ๋ฌธ์ ๋ก ์ ๋ต์ฝ๋๋ฅผ ๋ณด๋ฉด ๋งค์ฐ ๋จ์ํ๋ฐ ์์ด๋์ด๋ฅผ ๋ ์ฌ๋ฆฌ๊ธฐ๊น์ง๊ฐ ๋งค์ฐ ํ๋ค๋ค.
- ํต์ฌ ์์ด๋์ด๋ ๋ค์๊ณผ ๊ฐ๋ค.
- ํ์ฌ๊น์ง ์ธก์ ๊ฐ๋ฅํ ๋ฌด๊ฒ์ ์ต๋๊ฐ์ ans๋ผ๊ณ ํ๋ฉด (1 - ans)์ ๊ฐ๋ค์ ์ธก์ ํ ์ ์๋ค.
- ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ๋ ๋ฌด๊ฒ์ถ๋ค ์ค์์ ํ๋์ ๋ฌด๊ฒ์ถ(weight)์ ์ ํํ๋ค.
- weight <= ans๋ผ๋ฉด (1 ~ ans)์ ๊ฐ๋ค์ ์ธก์ ํ ์ ์์ผ๋ฏ๋ก weight + 1, weight + 2 .... weight + ans๋ ์ธก์ ํ ์ ์์ผ๋ฏ๋ก, ์ธก์ ๊ฐ๋ฅํ ์ต๋๊ฐ์ ans + weight์ด ๋๋ค.
- weight > ans + 1๋ผ๋ฉด ans + 1์ ๊ฐ์ ์ธก์ ๋ถ๊ฐ๋ฅํ๋ฏ๋ก ํด๋น ๊ฐ์ด ์ ๋ต์ด ๋๋ค.
- ๋จ 1, 1, 1, 1 ํน์ 1, 2, 3, 4 ์ฒ๋ผ 1 ~ sum(weights)๊น์ง ๋ชจ๋ ์ธก์ ์ด ๊ฐ๋ฅํ ๊ฒฝ์ฐ๋ sum(weights) + 1์ด ์ ๋ต์ด ๋๋ฏ๋ก ๋ง์ง๋ง์๋ ์ถ๋ ฅ ์ฝ๋๋ฅผ ๋ฃ์ด์ค์ผ ํ๋ค.
<์ ๋ต ์ฝ๋>
import sys, os, io, atexit
input = lambda: sys.stdin.readline().rstrip('\r\n')
stdout = io.BytesIO()
sys.stdout.write = lambda s: stdout.write(s.encode("ascii"))
atexit.register(lambda: os.write(1, stdout.getvalue()))
# 220927 2437 ์ ์ธ
# ์ ๋ต์ฝ๋
# N: ์ ์ธ ์ถ ๊ฐ์, weights: ์ ์ธ ์ถ์ ๋ฌด๊ฒ
N = int(input())
weights = list(map(int, input().split()))
# ์ค๋ฆ์ฐจ์ ์ ๋ ฌ
weights.sort()
# solve: ๊ทธ๋ฆฌ๋๋ก ๋ฌธ์ ํด๊ฒฐ
def solve():
# ans: ํ์ฌ ์ธก์ ๊ฐ๋ฅํ ๋ฌด๊ฒ์ ์ต๋๊ฐ + 1 (์ธก์ ํ ์ ์๋ ๋ฌด๊ฒ์ ์ต์๊ฐ )
ans = 1
for weight in weights:
# ํ์ฌ ์ ํํ ๋ฌด๊ฒ์ถ๊ฐ ํ์ฌ๊น์ง ์ธก์ ๊ฐ๋ฅํ ๋ฌด๊ฒ์ ์ต๋๊ฐ๋ณด๋ค ํด ๊ฒฝ์ฐ (ํ์ฌ ๋ฌด๊ฒ ์ต๋๊ฐ + 1)์ ์ธก์ ํ ์ ์๋ค.
if ans < weight:
print(ans)
return
# ํ์ฌ ์ ํํ ๋ฌด๊ฒ์ถ(weight)๊ฐ ํ์ฌ๊น์ง ์ธก์ ๊ฐ๋ฅํ ๋ฌด๊ฒ์ ์ต๋๊ฐ(ans)๋ณด๋ค ์์ ๊ฒฝ์ฐ ans <= K <= ans + weight์ ์ธก์ ๊ฐ๋ฅํ๋ฏ๋ก ์ธก์ ๊ฐ๋ฅํ ๋ฌด๊ฒ์ ์ต๋๊ฐ์ weight์ ๋ํด์ค๋ค.
ans += weight
# 1 ~ sum(weights)๊น์ง ๋ชจ๋ ์ธก์ ์ด ๊ฐ๋ฅํ ๊ฒฝ์ฐ
print(ans)
return
solve()
'โญ Problem_Solving > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 1662 ์์ถ (Python/ํ์ด์ฌ) (1) | 2022.10.05 |
---|---|
[๋ฐฑ์ค] 20057 ๋ง๋ฒ์ฌ ์์ด์ ํ ๋ค์ด๋ (Python/ํ์ด์ฌ) (0) | 2022.10.04 |
[๋ฐฑ์ค] 20056 ๋ง๋ฒ์ฌ ์์ด์ ํ์ด์ด๋ณผ (Python/ํ์ด์ฌ) (0) | 2022.10.03 |
[๋ฐฑ์ค] 14621 ๋๋ง ์๋๋ ์ฐ์ (Python/ํ์ด์ฌ) (1) | 2022.10.02 |
[๋ฐฑ์ค] 16724 ํผ๋ฆฌ ๋ถ๋ ์ฌ๋์ด (Python/ํ์ด์ฌ) (0) | 2022.10.02 |
๋๊ธ