๋ฌธ์
์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ์ง์ ๋๋ก์์ ์ผ์ชฝ๋ถํฐ ์ค๋ฅธ์ชฝ์ผ๋ก 1๋ฒ๋ถํฐ ์ฐจ๋ก๋๋ก ๋ฒํธ๊ฐ ๋ถ์ฌ์ง ๋ง์๋ค์ด ์๋ค. ๋ง์์ ์๋ ๋ฌผ๊ฑด์ ๋ฐฐ์กํ๊ธฐ ์ํ ํธ๋ญ ํ ๋๊ฐ ์๊ณ , ํธ๋ญ์ด ์๋ ๋ณธ๋ถ๋ 1๋ฒ ๋ง์ ์ผ์ชฝ์ ์๋ค. ์ด ํธ๋ญ์ ๋ณธ๋ถ์์ ์ถ๋ฐํ์ฌ 1๋ฒ ๋ง์๋ถํฐ ๋ง์ง๋ง ๋ง์๊น์ง ์ค๋ฅธ์ชฝ์ผ๋ก ๊ฐ๋ฉด์ ๋ง์์ ์๋ ๋ฌผ๊ฑด์ ๋ฐฐ์กํ๋ค.
๊ฐ ๋ง์์ ๋ฐฐ์กํ ๋ฌผ๊ฑด๋ค์ ๋ฐ์ค์ ๋ฃ์ด ๋ณด๋ด๋ฉฐ, ๋ณธ๋ถ์์๋ ๋ฐ์ค๋ฅผ ๋ณด๋ด๋ ๋ง์๋ฒํธ, ๋ฐ์ค๋ฅผ ๋ฐ๋ ๋ง์๋ฒํธ์ ๋ณด๋ผ ๋ฐ์ค์ ๊ฐ์๋ฅผ ์๊ณ ์๋ค. ๋ฐ์ค๋ค์ ๋ชจ๋ ํฌ๊ธฐ๊ฐ ๊ฐ๋ค. ํธ๋ญ์ ์ต๋๋ก ์ค์ ์ ์๋ ๋ฐ์ค์ ๊ฐ์, ์ฆ ํธ๋ญ์ ์ฉ๋์ด ์๋ค. ์ด ํธ๋ญ ํ๋๋ฅผ ์ด์ฉํ์ฌ ๋ค์์ ์กฐ๊ฑด์ ๋ชจ๋ ๋ง์กฑํ๋ฉด์ ์ต๋ํ ๋ง์ ๋ฐ์ค๋ค์ ๋ฐฐ์กํ๋ ค๊ณ ํ๋ค.
- ์กฐ๊ฑด 1: ๋ฐ์ค๋ฅผ ํธ๋ญ์ ์ค์ผ๋ฉด, ์ด ๋ฐ์ค๋ ๋ฐ๋ ๋ง์์์๋ง ๋ด๋ฆฐ๋ค.
- ์กฐ๊ฑด 2: ํธ๋ญ์ ์ง๋์จ ๋ง์๋ก ๋๋์๊ฐ์ง ์๋๋ค.
- ์กฐ๊ฑด 3: ๋ฐ์ค๋ค ์ค ์ผ๋ถ๋ง ๋ฐฐ์กํ ์๋ ์๋ค.
๋ง์์ ๊ฐ์, ํธ๋ญ์ ์ฉ๋, ๋ฐ์ค ์ ๋ณด(๋ณด๋ด๋ ๋ง์๋ฒํธ, ๋ฐ๋ ๋ง์๋ฒํธ, ๋ฐ์ค ๊ฐ์)๊ฐ ์ฃผ์ด์ง ๋, ํธ๋ญ ํ ๋๋ก ๋ฐฐ์กํ ์ ์๋ ์ต๋ ๋ฐ์ค ์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค. ๋จ, ๋ฐ๋ ๋ง์๋ฒํธ๋ ๋ณด๋ด๋ ๋ง์๋ฒํธ๋ณด๋ค ํญ์ ํฌ๋ค.
์๋ฅผ ๋ค์ด, ํธ๋ญ ์ฉ๋์ด 40์ด๊ณ ๋ณด๋ด๋ ๋ฐ์ค๋ค์ด ๋ค์ ํ์ ๊ฐ๋ค๊ณ ํ์.
๋ณด๋ด๋ ๋ง์ | ๋ฐ๋ ๋ง์ | ๊ฐ์ |
1 | 2 | 10 |
1 | 3 | 20 |
1 | 4 | 30 |
2 | 3 | 10 |
2 | 4 | 20 |
3 | 4 | 20 |
์ด๋ค ๋ฐ์ค์ ๋ํ์ฌ ๋ค์๊ณผ ๊ฐ์ด ๋ฐฐ์กํ๋ ๋ฐฉ๋ฒ์ ๊ณ ๋ คํด ๋ณด์.
(1) 1๋ฒ ๋ง์์ ๋์ฐฉํ๋ฉด
- ๋ค์๊ณผ ๊ฐ์ด ๋ฐ์ค๋ค์ ํธ๋ญ์ ์ฃ๋๋ค. (1๋ฒ ๋ง์์์ 4๋ฒ ๋ง์๋ก ๋ณด๋ด๋ ๋ฐ์ค๋ 30๊ฐ ์ค 10๊ฐ๋ฅผ ์ฃ๋๋ค.)
๋ณด๋ด๋ ๋ง์ | ๋ฐ๋ ๋ง์ | ๊ฐ์ |
1 | 2 | 10 |
1 | 3 | 20 |
1 | 4 | 10 |
(2) 2๋ฒ ๋ง์์ ๋์ฐฉํ๋ฉด
- ํธ๋ญ์ ์ค๋ ค์ง ๋ฐ์ค๋ค ์ค ๋ฐ๋ ๋ง์๋ฒํธ๊ฐ 2์ธ ๋ฐ์ค 10๊ฐ๋ฅผ ๋ด๋ ค ๋ฐฐ์กํ๋ค. (์ด๋ ํธ๋ญ์ ๋จ์์๋ ๋ฐ์ค๋ 30๊ฐ๊ฐ ๋๋ค.)
- ๊ทธ๋ฆฌ๊ณ ๋ค์๊ณผ ๊ฐ์ด ๋ฐ์ค๋ค์ ์ฃ๋๋ค. (์ด๋ ํธ๋ญ์ ์ค๋ ค ์๋ ๋ฐ์ค๋ 40๊ฐ๊ฐ ๋๋ค.)ใ ใ
๋ณด๋ด๋ ๋ง์ | ๋ฐ๋ ๋ง์ | ๊ฐ์ |
2 | 3 | 10 |
(3) 3๋ฒ ๋ง์์ ๋์ฐฉํ๋ฉด
- ํธ๋ญ์ ์ค๋ ค์ง ๋ฐ์ค๋ค ์ค ๋ฐ๋ ๋ง์๋ฒํธ๊ฐ 3์ธ ๋ฐ์ค 30๊ฐ๋ฅผ ๋ด๋ ค ๋ฐฐ์กํ๋ค. (์ด๋ ํธ๋ญ์ ๋จ์์๋ ๋ฐ์ค๋ 10๊ฐ๊ฐ ๋๋ค.)
- ๊ทธ๋ฆฌ๊ณ ๋ค์๊ณผ ๊ฐ์ด ๋ฐ์ค๋ค์ ์ฃ๋๋ค. (์ด๋ ํธ๋ญ์ ์ค๋ ค ์๋ ๋ฐ์ค๋ 30๊ฐ๊ฐ ๋๋ค.)
๋ณด๋ด๋ ๋ง์๋ฐ๋ ๋ง์๋ฐ์ค ๊ฐ์
๋ณด๋ด๋ ๋ง์ | ๋ฐ๋ ๋ง์ | ๊ฐ์ |
3 | 4 | 20 |
(4) 4๋ฒ ๋ง์์ ๋์ฐฉํ๋ฉด
- ๋ฐ๋ ๋ง์๋ฒํธ๊ฐ 4์ธ ๋ฐ์ค 30๊ฐ๋ฅผ ๋ด๋ ค ๋ฐฐ์กํ๋ค
์์ ๊ฐ์ด ๋ฐฐ์กํ๋ฉด ๋ฐฐ์กํ ์ ์ฒด ๋ฐ์ค๋ 70๊ฐ์ด๋ค. ์ด๋ ๋ฐฐ์กํ ์ ์๋ ์ต๋ ๋ฐ์ค ๊ฐ์์ด๋ค.
์ ๋ ฅ
์ ๋ ฅ์ ์ฒซ ์ค์ ๋ง์ ์ N๊ณผ ํธ๋ญ์ ์ฉ๋ C๊ฐ ๋น์นธ์ ์ฌ์ด์ ๋๊ณ ์ฃผ์ด์ง๋ค. N์ 2์ด์ 2,000์ดํ ์ ์์ด๊ณ , C๋ 1์ด์ 10,000์ดํ ์ ์์ด๋ค. ๋ค์ ์ค์, ๋ณด๋ด๋ ๋ฐ์ค ์ ๋ณด์ ๊ฐ์ M์ด ์ฃผ์ด์ง๋ค. M์ 1์ด์ 10,000์ดํ ์ ์์ด๋ค. ๋ค์ M๊ฐ์ ๊ฐ ์ค์ ๋ฐ์ค๋ฅผ ๋ณด๋ด๋ ๋ง์๋ฒํธ, ๋ฐ์ค๋ฅผ ๋ฐ๋ ๋ง์๋ฒํธ, ๋ณด๋ด๋ ๋ฐ์ค ๊ฐ์(1์ด์ 10,000์ดํ ์ ์)๋ฅผ ๋ํ๋ด๋ ์์ ์ ์๊ฐ ๋น์นธ์ ์ฌ์ด์ ๋๊ณ ์ฃผ์ด์ง๋ค. ๋ฐ์ค๋ฅผ ๋ฐ๋ ๋ง์๋ฒํธ๋ ๋ณด๋ด๋ ๋ง์๋ฒํธ๋ณด๋ค ํฌ๋ค.
์ถ๋ ฅ
ํธ๋ญ ํ ๋๋ก ๋ฐฐ์กํ ์ ์๋ ์ต๋ ๋ฐ์ค ์๋ฅผ ํ ์ค์ ์ถ๋ ฅํ๋ค.
https://www.acmicpc.net/problem/8980
๐กํ์ด ๋ฐ ์ฝ๋
n, c = map(int, input().split())
m = int(input())
in_box = []
for _ in range(m):
in_box.append(tuple(map(int, input().split())))
in_box.sort(key=lambda x: x[1])
village = [0] * (n+1)
result = 0
for f, t, s in in_box:
temp = s
for i in range(f, t):
if village[i] + temp >= c:
temp = c - village[i]
for i in range(f, t):
village[i] += temp
result += temp
print(result)
์ด ๋ฌธ์ ์ ํต์ฌ์ ์ ๋ ฅ ๋ฐ์ดํฐ๋ฅผ ๋ฐ๋ ๋ง์์ ๋ฒํธ ์์๋๋ก ์ค๋ฆ์ฐจ์ ์ ๋ ฌํ๋ ๊ฒ์ด๋ค. ์ด๋ ๊ฒ ์ ๋ ฌ๋ ํ๋ฐฐ ๋ฐ์ดํฐ ๊ฐ๊ฐ์ ๋ํ์ฌ ๋ณด๋ด๋ ๋ง์๋ถํฐ ๋ฐ๋ ๋ง์๊น์ง ํ๋ฐฐ๋ฅผ ์ค์ ์ ์๋ ๋งํผ ๋ชจ๋ ํธ๋ญ์ ์ฃ๋๋ค. ์ด๋, ๊ฐ ๋ง์์์ ์ฃ๋ ํ๋ฐฐ ์์ ์๋ฏธํ๋ ๋ฆฌ์คํธ(village)๋ฅผ ์์ฑํ์ฌ ์ฌ์ฉํ๋ค.
'Algorithm > ๐ Baekjoon Judge' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ] ๋ฐฑ์ค 3109๋ฒ ๋นต์ง - ํ์ด์ฌ(Python) (0) | 2022.07.06 |
---|---|
[BOJ] ๋ฐฑ์ค 1781๋ฒ ์ปต๋ผ๋ฉด - ํ์ด์ฌ(Python) (0) | 2022.07.04 |
[BOJ] ๋ฐฑ์ค 15683๋ฒ ๊ฐ์ - ํ์ด์ฌ(Python) (0) | 2022.04.04 |
[BOJ] ๋ฐฑ์ค 14499๋ฒ ์ฃผ์ฌ์ ๊ตด๋ฆฌ๊ธฐ - ํ์ด์ฌ(Python) (0) | 2022.04.02 |
[BOJ] ๋ฐฑ์ค 20055๋ฒ ์ปจ๋ฒ ์ด์ด ๋ฒจํธ ์์ ๋ก๋ด - ํ์ด์ฌ(Python) (0) | 2022.04.01 |