๋ฌธ์
ํ ๋ ๋์ํํธ๋ ๋ํ ์ค๋น๋ฅผ ํ๋ค๊ฐ ์ง๋ฃจํด์ ธ์ ์๋๋ฐ์ค ๊ฒ์์ธ ‘๋ง์ธํฌ๋ํํธ’๋ฅผ ์ผฐ๋ค. ๋ง์ธํฌ๋ํํธ๋ 1 × 1 × 1(์ธ๋ก, ๊ฐ๋ก, ๋์ด) ํฌ๊ธฐ์ ๋ธ๋ก๋ค๋ก ์ด๋ฃจ์ด์ง 3์ฐจ์ ์ธ๊ณ์์ ์์ ๋กญ๊ฒ ๋ ์ ํ๊ฑฐ๋ ์ง์ ์ง์ ์ ์๋ ๊ฒ์์ด๋ค.
๋ชฉ์ฌ๋ฅผ ์ถฉ๋ถํ ๋ชจ์ lvalue๋ ์ง์ ์ง๊ธฐ๋ก ํ์๋ค. ํ์ง๋ง ๊ณ ๋ฅด์ง ์์ ๋ ์๋ ์ง์ ์ง์ ์ ์๊ธฐ ๋๋ฌธ์ ๋ ์ ๋์ด๋ฅผ ๋ชจ๋ ๋์ผํ๊ฒ ๋ง๋๋ ‘๋ ๊ณ ๋ฅด๊ธฐ’ ์์ ์ ํด์ผ ํ๋ค.
lvalue๋ ์ธ๋ก N, ๊ฐ๋ก M ํฌ๊ธฐ์ ์งํฐ๋ฅผ ๊ณจ๋๋ค. ์งํฐ ๋งจ ์ผ์ชฝ ์์ ์ขํ๋ (0, 0)์ด๋ค. ์ฐ๋ฆฌ์ ๋ชฉ์ ์ ์ด ์งํฐ ๋ด์ ๋ ์ ๋์ด๋ฅผ ์ผ์ ํ๊ฒ ๋ฐ๊พธ๋ ๊ฒ์ด๋ค. ์ฐ๋ฆฌ๋ ๋ค์๊ณผ ๊ฐ์ ๋ ์ข ๋ฅ์ ์์ ์ ํ ์ ์๋ค.
- ์ขํ (i, j)์ ๊ฐ์ฅ ์์ ์๋ ๋ธ๋ก์ ์ ๊ฑฐํ์ฌ ์ธ๋ฒคํ ๋ฆฌ์ ๋ฃ๋๋ค.
- ์ธ๋ฒคํ ๋ฆฌ์์ ๋ธ๋ก ํ๋๋ฅผ ๊บผ๋ด์ด ์ขํ (i, j)์ ๊ฐ์ฅ ์์ ์๋ ๋ธ๋ก ์์ ๋๋๋ค.
1๋ฒ ์์ ์ 2์ด๊ฐ ๊ฑธ๋ฆฌ๋ฉฐ, 2๋ฒ ์์ ์ 1์ด๊ฐ ๊ฑธ๋ฆฐ๋ค. ๋ฐค์๋ ๋ฌด์์ด ๋ชฌ์คํฐ๋ค์ด ๋์ค๊ธฐ ๋๋ฌธ์ ์ต๋ํ ๋นจ๋ฆฌ ๋ ๊ณ ๋ฅด๊ธฐ ์์ ์ ๋ง์ณ์ผ ํ๋ค. ‘๋ ๊ณ ๋ฅด๊ธฐ’ ์์ ์ ๊ฑธ๋ฆฌ๋ ์ต์ ์๊ฐ๊ณผ ๊ทธ ๊ฒฝ์ฐ ๋ ์ ๋์ด๋ฅผ ์ถ๋ ฅํ์์ค.
๋จ, ์งํฐ ์๋์ ๋๊ตด ๋ฑ ๋น ๊ณต๊ฐ์ ์กด์ฌํ์ง ์์ผ๋ฉฐ, ์งํฐ ๋ฐ๊นฅ์์ ๋ธ๋ก์ ๊ฐ์ ธ์ฌ ์ ์๋ค. ๋ํ, ์์ ์ ์์ํ ๋ ์ธ๋ฒคํ ๋ฆฌ์๋ B๊ฐ์ ๋ธ๋ก์ด ๋ค์ด ์๋ค. ๋ ์ ๋์ด๋ 256๋ธ๋ก์ ์ด๊ณผํ ์ ์์ผ๋ฉฐ, ์์๊ฐ ๋ ์ ์๋ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ N, M, B๊ฐ ์ฃผ์ด์ง๋ค. (1 ≤ M, N ≤ 500, 0 ≤ B ≤ 6.4 × 107)
๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์ ๊ฐ๊ฐ M๊ฐ์ ์ ์๋ก ๋ ์ ๋์ด๊ฐ ์ฃผ์ด์ง๋ค. (i + 2)๋ฒ์งธ ์ค์ (j + 1)๋ฒ์งธ ์๋ ์ขํ (i, j)์์์ ๋ ์ ๋์ด๋ฅผ ๋ํ๋ธ๋ค. ๋ ์ ๋์ด๋ 256๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ฐ์ ๋๋ 0์ด๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค์ ๋ ์ ๊ณ ๋ฅด๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ๊ณผ ๋ ์ ๋์ด๋ฅผ ์ถ๋ ฅํ์์ค. ๋ต์ด ์ฌ๋ฌ ๊ฐ ์๋ค๋ฉด ๊ทธ์ค์์ ๋ ์ ๋์ด๊ฐ ๊ฐ์ฅ ๋์ ๊ฒ์ ์ถ๋ ฅํ์์ค.
ํด์ค ์ฝ๋
from math import inf
n,m,inv = map(int,input().split())
arr = []
lin = []
ans = inf
for _ in range(n):
num = input().split()
arr.append(num)
answer = sum(arr,[])
answer.sort(reverse=True)
for k in answer:
lin.append(int(k))
for t in range(257): # ์ต๋ ๋
์ ๋์ด๊ฐ 256์ด๊ธฐ ๋๋ฌธ
max = 0
min = 0
for p in lin:
if p < t: # ๋ธ๋ญ์ด ํ์ฌ ๋์ด๋ณด๋ค ๋ฎ๋ค๋ฉด
min += t - p
else: # ๋ธ๋ญ์ด ํ์ฌ ๋์ด๋ณด๋ค ๋๋ค๋ฉด
max += p - t
inventory = inv + max
if inventory < min:
continue
time = 2 * max + min
if time <= ans:
ans = time
tall = t
print(ans,tall)
๋ถ์ > ์ ์ด์ ์ ๊ทผ์ ๋ชปํด์ ๊ทธ๋ฅ ํด์ค ์ฝ๋๋ฅผ ๋ณด๊ณ ๊ณต๋ถํ๋ ๋ฌธ์ . ์ผ๋จ ์ต๋ ๋ ์ ๋์ด๊ฐ ์ฃผ์ด์ก๊ธฐ ๋๋ฌธ์, ์ต๋ ๋ ๋์ด๋ฅผ ๋ค ๋๋ฉด์ ๋ธ๋ญ์ด ํ์ฌ ๋์ด๋ณด๋ค ๋ฎ์ ๋์ ํ์ฌ ๋์ด๋ณด๋ค ๋์ ๋๋ฅผ ๋ฐ๋ก ๋ฐ๋ก min ๊ณผ max์ ์ ์ฅ์ ํด๋๊ณ min๊ฐ(์ธ๋ฒคํ ๋ฆฌ๋ก๋ถํฐ ๋ธ๋ญ์ ๋ฐ์์ผ ํ๋ ์์ด๋ค) ์ด ์ธ๋ฒคํ ๋ฆฌ์ ๊ฐ๋ณด๋ค ์์ผ๋ฉด continue๋ฅผ ํ๋ฉด์ ์๋ก์ด ๋ ์ ๋์ด๋ก ๋น๊ตํ๋ฉด ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋์ ์ต์ข ์ ์ผ๋ก ๋์ถ๋ min๊ณผ max ๊ฐ์ผ๋ก ๊ฑธ๋ฆฐ ์๊ฐ๊ณผ ๋ ์ ๋์ด๋ฅผ ๊ตฌํ๋ฉด ๋๋ค.
'Algorithm > BOJ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ] ์ถ์ (#2002) (0) | 2022.05.03 |
---|---|
[BOJ] ์๊ฐ์ ์ฒญ (#13414) (0) | 2022.04.23 |
[BOJ] ํ๋ ธ์ค (#20310) (0) | 2022.04.22 |
[BOJ] ๊ณต (#1547) (0) | 2022.04.15 |
[BOJ] ๋ช ๋ น ํ๋กฌํํธ (#1032) (0) | 2022.04.13 |