์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- ๊น์ด์ฐ์ ํ์
- ๋จธ์ง์ํธ
- DP
- ์์๊ตฌํ๊ธฐ
- LIS
- DFS
- ํฐ์คํ ๋ฆฌ์ฑ๋ฆฐ์ง
- ๊ทธ๋ํ
- SQL
- ๋ณํฉ์ ๋ ฌ
- db
- ํ๋ก๊ทธ๋๋จธ์ค
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ๋์ ํฉ
- ์์ํ์
- ์ ๋ ฌ
- ๋ค์ด๋๋ฏนํ๋ก๊ทธ๋๋ฐ
- ํ์ด์ฌ
- ๋์ ๊ณํ๋ฒ
- BFS
- ์ํ
- ๊ตฌํ
- ์๋ฃ๊ตฌ์กฐ
- ๊ทธ๋ฆฌ๋
- ๊ทธ๋ํํ์
- ๋ฐฑ์ค
- ์๊ณ ๋ฆฌ์ฆ
- ์ฐ์ ์์ํ
- ๋๋น์ฐ์ ํ์
- ์ค๋ธ์
๐๐ญ๐ฐ๐ธ ๐ฃ๐ถ๐ต ๐ด๐ต๐ฆ๐ข๐ฅ๐บ
[ํ๋ก๊ทธ๋๋จธ์ค] ํ๋ฐฐ ๋ฐฐ๋ฌ๊ณผ ์๊ฑฐํ๊ธฐ - ํ์ด์ฌ ๋ณธ๋ฌธ
[ํ๋ก๊ทธ๋๋จธ์ค] ํ๋ฐฐ ๋ฐฐ๋ฌ๊ณผ ์๊ฑฐํ๊ธฐ - ํ์ด์ฌ
.23 2024. 11. 14. 21:05๋ฌธ์
๐ : ํ๋ก๊ทธ๋๋จธ์ค - ํ๋ฐฐ ๋ฐฐ๋ฌ๊ณผ ์๊ฑฐํ๊ธฐ
๋น์ ์ ์ผ๋ ฌ๋ก ๋์ด๋ n๊ฐ์ ์ง์ ํ๋ฐฐ๋ฅผ ๋ฐฐ๋ฌํ๋ ค ํฉ๋๋ค. ๋ฐฐ๋ฌํ ๋ฌผ๊ฑด์ ๋ชจ๋ ํฌ๊ธฐ๊ฐ ๊ฐ์ ์ฌํ์ฉ ํ๋ฐฐ ์์์ ๋ด์ ๋ฐฐ๋ฌํ๋ฉฐ, ๋ฐฐ๋ฌ์ ๋ค๋๋ฉด์ ๋น ์ฌํ์ฉ ํ๋ฐฐ ์์๋ค์ ์๊ฑฐํ๋ ค ํฉ๋๋ค.
๋ฐฐ๋ฌํ ํ๋ฐฐ๋ค์ ๋ชจ๋ ์ฌํ์ฉ ํ๋ฐฐ ์์์ ๋ด๊ฒจ์ ๋ฌผ๋ฅ์ฐฝ๊ณ ์ ๋ณด๊ด๋์ด ์๊ณ , i๋ฒ์งธ ์ง์ ๋ฌผ๋ฅ์ฐฝ๊ณ ์์ ๊ฑฐ๋ฆฌ i๋งํผ ๋จ์ด์ ธ ์์ต๋๋ค. ๋ํ i๋ฒ์งธ ์ง์ j๋ฒ์งธ ์ง๊ณผ ๊ฑฐ๋ฆฌ j - i๋งํผ ๋จ์ด์ ธ ์์ต๋๋ค. (1 ≤ i ≤ j ≤ n)
ํธ๋ญ์๋ ์ฌํ์ฉ ํ๋ฐฐ ์์๋ฅผ ์ต๋ cap๊ฐ ์ค์ ์ ์์ต๋๋ค. ํธ๋ญ์ ๋ฐฐ๋ฌํ ์ฌํ์ฉ ํ๋ฐฐ ์์๋ค์ ์ค์ด ๋ฌผ๋ฅ์ฐฝ๊ณ ์์ ์ถ๋ฐํด ๊ฐ ์ง์ ๋ฐฐ๋ฌํ๋ฉด์, ๋น ์ฌํ์ฉ ํ๋ฐฐ ์์๋ค์ ์๊ฑฐํด ๋ฌผ๋ฅ์ฐฝ๊ณ ์ ๋ด๋ฆฝ๋๋ค. ๊ฐ ์ง๋ง๋ค ๋ฐฐ๋ฌํ ์ฌํ์ฉ ํ๋ฐฐ ์์์ ๊ฐ์์ ์๊ฑฐํ ๋น ์ฌํ์ฉ ํ๋ฐฐ ์์์ ๊ฐ์๋ฅผ ์๊ณ ์์ ๋, ํธ๋ญ ํ๋๋ก ๋ชจ๋ ๋ฐฐ๋ฌ๊ณผ ์๊ฑฐ๋ฅผ ๋ง์น๊ณ ๋ฌผ๋ฅ์ฐฝ๊ณ ๊น์ง ๋์์ฌ ์ ์๋ ์ต์ ์ด๋ ๊ฑฐ๋ฆฌ๋ฅผ ๊ตฌํ๋ ค ํฉ๋๋ค. ๊ฐ ์ง์ ๋ฐฐ๋ฌ ๋ฐ ์๊ฑฐํ ๋, ์ํ๋ ๊ฐ์๋งํผ ํ๋ฐฐ๋ฅผ ๋ฐฐ๋ฌ ๋ฐ ์๊ฑฐํ ์ ์์ต๋๋ค.
๋ค์์ cap=4 ์ผ ๋, ์ต์ ๊ฑฐ๋ฆฌ๋ก ์ด๋ํ๋ฉด์ 5๊ฐ์ ์ง์ ๋ฐฐ๋ฌ ๋ฐ ์๊ฑฐํ๋ ๊ณผ์ ์ ๋ํ๋ธ ์์์ ๋๋ค.
๋ฐฐ๋ฌ ๋ฐ ์๊ฑฐํ ์ฌํ์ฉ ํ๋ฐฐ ์์ ๊ฐ์
์ง #1 | ์ง #2 | ์ง #3 | ์ง #4 | ์ง #5 | |
๋ฐฐ๋ฌ | 1๊ฐ | 0๊ฐ | 3๊ฐ | 1๊ฐ | 2๊ฐ |
์๊ฑฐ | 0๊ฐ | 3๊ฐ | 0๊ฐ | 4๊ฐ | 0๊ฐ |
๋ฐฐ๋ฌ ๋ฐ ์๊ฑฐ ๊ณผ์
16(=5+5+3+3)์ ๊ฑฐ๋ฆฌ๋ฅผ ์ด๋ํ๋ฉด์ ๋ชจ๋ ๋ฐฐ๋ฌ ๋ฐ ์๊ฑฐ๋ฅผ ๋ง์ณค์ต๋๋ค. ๊ฐ์ ๊ฑฐ๋ฆฌ๋ก ๋ชจ๋ ๋ฐฐ๋ฌ ๋ฐ ์๊ฑฐ๋ฅผ ๋ง์น๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ด ์์ง๋ง, ์ด๋ณด๋ค ์งง์ ๊ฑฐ๋ฆฌ๋ก ๋ชจ๋ ๋ฐฐ๋ฌ ๋ฐ ์๊ฑฐ๋ฅผ ๋ง์น๋ ๋ฐฉ๋ฒ์ ์์ต๋๋ค.
ํธ๋ญ์ ์ค์ ์ ์๋ ์ฌํ์ฉ ํ๋ฐฐ ์์์ ์ต๋ ๊ฐ์๋ฅผ ๋ํ๋ด๋ ์ ์ cap , ๋ฐฐ๋ฌํ ์ง์ ๊ฐ์๋ฅผ ๋ํ๋ด๋ ์ ์ n , ๊ฐ ์ง์ ๋ฐฐ๋ฌํ ์ฌํ์ฉ ํ๋ฐฐ ์์์ ๊ฐ์๋ฅผ ๋ด์ 1์ฐจ์ ์ ์ ๋ฐฐ์ด deliveries ์ ๊ฐ ์ง์์ ์๊ฑฐํ ๋น ์ฌํ์ฉ ํ๋ฐฐ ์์์ ๊ฐ์๋ฅผ ๋ด์ 1์ฐจ์ ์ ์ ๋ฐฐ์ด pickups ๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. ์ด๋, ํธ๋ญ ํ๋๋ก ๋ชจ๋ ๋ฐฐ๋ฌ๊ณผ ์๊ฑฐ๋ฅผ ๋ง์น๊ณ ๋ฌผ๋ฅ์ฐฝ๊ณ ๊น์ง ๋์์ฌ ์ ์๋ ์ต์ ์ด๋ ๊ฑฐ๋ฆฌ๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด ์ฃผ์ธ์.
์ ํ์ฌํญ
- 1 ≤ cap ≤ 50
- 1 ≤ n ≤ 100,000
- deliveries์ ๊ธธ์ด = pickups์ ๊ธธ์ด = n
- deliveries[i] ๋ i+1๋ฒ์งธ ์ง์ ๋ฐฐ๋ฌํ ์ฌํ์ฉ ํ๋ฐฐ ์์์ ๊ฐ์๋ฅผ ๋ํ๋ ๋๋ค.
- pickups[i] ๋ i+1๋ฒ์งธ ์ง์์ ์๊ฑฐํ ๋น ์ฌํ์ฉ ํ๋ฐฐ ์์์ ๊ฐ์๋ฅผ ๋ํ๋ ๋๋ค.
- 0 ≤ deliveries[i] ≤ 50
- 0 ≤ pickups[i] ≤ 50
- ํธ๋ญ์ ์ด๊ธฐ ์์น๋ ๋ฌผ๋ฅ์ฐฝ๊ณ ์ ๋๋ค.
์ ์ถ๋ ฅ ์
๋ ๋ฒจ2 ์๊ฐ์ ๋ ๋ฒจ2 ๋ฌธ์ ์ด๋ฉฐ,
์์ง๋ ๋ชป์นํด์ง ๊ทธ๋ฆฌ๋ ๋ฌธ์ .
ํ์ด ์ฐธ๊ณ : https://school.programmers.co.kr/questions/43364
๊ทธ๋ฆฌ๋ ๋ฌธ์ ๋ ์ฌ์ค ์๋ ๋ชป๋๊ฒ ์ด์ ์์ ํ์ด๋ฅผ ๋ง์ด ์ฐธ์กฐํ๋ค.ใ ใ
์ ๋งํฌ์์ ์๊ธฐํ๋ ํฌ์ธํธ๋ ๋ค์๊ณผ ๊ฐ๋ค.
- i ๊ฑฐ๋ฆฌ์ ์ง์ ๋ฐฐ๋ฌํ๊ฑฐ๋ ์๊ฑฐํ ์์๊ฐ ๋จ์๋ค๋ฉด, ์ด์ฐจํผ i๋งํผ ์ด๋ํด์ผ๋๋ค.
- ๋ฌผ๋ฅ์ฐฝ๊ณ ์์ ์ถ๋ฐํด์ ๋ค์ ๋์์ค๋ ๊ธธ์๋ ๋ฌด์กฐ๊ฑด cap๋งํผ ๋ฐฐ๋ฌ / ์๊ฑฐ๊ฐ ๊ฐ๋ฅํ๋ค.
- i๊น์ง ๊ฐ๋๋ฐ ๋ฏธ์ฒ ์ฒ๋ฆฌ ๋ชปํ ๋ฐฐ๋ฌ/์๊ฑฐ ์์๊ฐ ์์ ๊ฒฝ์ฐ, i๊น์ง ๋ค์ ์์ผ ๋๋ค.
→ ์ฆ, cap๋งํผ ๋ฐฐ๋ฌ/์๊ฑฐ ๊ฐ๋ฅํ ์ต์ฅ๊ฑฐ๋ฆฌ i์์๋ถํฐ ๋ค๋ก ํ์ํด๋๊ฐ๋ค.
๋ฐฐ์ด์ ๋ค์์๋ถํฐ ํ์ํด๊ฐ๋ฉด์, cap๋งํผ ๋ฐฐ๋ฌ๊ณผ ์๊ฑฐ๋ฅผ ์งํํ๋ค.
์ด ๋, i๋งํผ ๊ฐ๋ ๊ธธ์ ๋ฐฐ๋ฌ ๋จผ์ /์๊ฑฐ ๋จผ์ ์ฌ๋ถ๋ ํธ๋ญ์ด ํ๋จํ๋ค.
์๋ฅผ ๋ค์ด 5๋ฒ ์ง๊น์ง ๊ฐ๋ ๊ธธ์ 4๋ฒ → 5๋ฒ์ง์ ๊ฐ๋ฉด์ ๋ฐฐ๋ฌ์ ๋จผ์ ํ๊ณ
5๋ฒ์์ ๋์์ค๋ ๊ธธ์ 5๋ฒ → 4๋ฒ → 3๋ฒ ๊ฐ๋ฉด์ ์๊ฑฐ๋ฅผ ํ๋์ง,
4๋ฒ ์ง์ ๋ฐฐ๋ฌ ํ๋, ์์ 2๊ฐ๋ฅผ ์๊ฑฐํ๊ณ
5๋ฒ ์ง์ ๋ฐฐ๋ฌ ๋๊ฐํ๊ณ ๋์์ค๋ ๊ธธ์ 4๋ฒ ์ง์ ํ๋ฐฐ 2๊ฐ๋ฅผ ๋ง์ ์๊ฑฐ..๋ญ ๋ฑ๋ฑ๋ฑ ํ๋ฉด์ ์์์ ์ค๋์ง
์ด์ฐจํผ 5๋ฒ ์ง์ ์ฐ๊ณ ๋์์ค๋ ๊ธธ์ ๋ชจ๋ ์ผ์ด ์ด๋ฃจ์ด์ง๊ธฐ ๋๋ฌธ์, ๋ฐฐ๋ฌ๊ณผ ์๊ฑฐ์ ์์๋ ์ค์ํ์ง ์๋ค.
๋ค์ ๋งํ๋ฉด ๋ฐฐ๋ฌ / ์๊ฑฐ๋ ๋ณ๊ฐ์ task๋ก ์๊ฐํ๋ค.
์ฌ๊ธฐ๊น์ง ์์ด๋์ด๋ ์ดํดํ๊ณ , ์ฝ๋ํํ๋ ๊ณผ์ ์์
[ ๋ฃจํ๋ฅผ ๋๋ฉด์ ๋ฐฐ๋ฌํ๊ฑฐ๋ ์๊ฑฐํ ํ๋ฐฐ๊ฐ ์๋ ์ง์ ์ฐพ๋ ๋ฐ ๊น์ง ํ์ํ๋ค. ]
์ด ๋ถ๋ถ์ ํ์ด์ฌ์ผ๋ก ํ๋ฉด ๋ฐฑํผ ์๊ฐ์ด๊ณผ๊ฐ ๋ ๊ฒ ๊ฐ์๋ค....
๊ทธ๋ ๊ธฐ ๋๋ฌธ์
(n-1)๋ถํฐ ๊ฐ ์ง์ ๊ฑฐ๊พธ๋ก ๋๋ฉด์,
- ๋ฐฐ๋ฌ ์ ์ฌ๋ฅผ ๊ด๋ฆฌํ๋ ๋ณ์์ ์๊ฑฐ ์ ์ฌ๋ฅผ ๊ด๋ฆฌํ๋ ๋ณ์์ i๋ฒ์งธ ์ง์ ๋ฐฐ๋ฌ / ์๊ฑฐ ๊ฐ์๋ฅผ ๊ฐ๊ฐ ๋ํด์ค๋ค.
- ๋ง์ฝ ์ง๊ธ ํธ๋ญ์ ์ ์ฌ๋ ๊ฐ์๊ฐ 0๋ณด๋ค ์ปค์ก๋ค๋ฉด,
- ์ง๊ธ ์ ์ฌ๋ ์์ ๋ช ๋ฒ์ ์๋ณตํด์ผ ๋ง์น ์ ์๋์ง count ํ๋ค.
- ๊ฐ๊ฐ์ ์ ์ฌ ๊ด๋ฆฌ ๋ณ์์ (ํ์ x ์ ์ฌ ์ฉ๋) ๋งํผ ๋นผ์ ์ด๋ ํ ํ์ฌ ์ ์ฌ๋ ๊ฐ์๋ฅผ ์ ์ฅํ๋ค.
- ํ์ฌ ์ง์ ์์น์ ์๋ณต ํ์๋ฅผ ๊ณฑํด์ ์ด๋ ๊ฑฐ๋ฆฌ๋ฅผ ๊ณ์ฐํ๋ค.
์์ด๋์ด๋ฅผ ์ฐธ๊ณ ํด์ ๋๋ฆ ๋๋ง์ ๋ฐฉ์๋๋ก ํ์ด๋ดค๋ค...
์ฌ์ ํ ์ด๋ ต๋คใ ใ
์ฝ๋
def solution(cap, n, deliveries, pickups):
answer = 0
left_p, left_d = 0, 0
for i in range(n - 1, -1, -1):
cnt = 0
left_p += deliveries[i]
left_d += pickups[i]
if left_p > 0 or left_d > 0:
cnt = (max(left_d, left_p) + cap - 1) // cap
left_d -= cap * cnt
left_p -= cap * cnt
answer += (i + 1) * 2 * cnt
return answer
'์ฝ๋ฉํ ์คํธ ์ค๋น > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ถ๋ ์ฌ์ฉ์ - C++ (0) | 2024.11.12 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] N-Queen - C++ (0) | 2024.11.11 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์ฌํ๊ฒฝ๋ก - C++ (0) | 2024.11.08 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๋จ์์นด๋ฉ๋ผ - C++ (0) | 2024.04.11 |
[ํ๋ก๊ทธ๋๋จธ์ค] ๋ ๋งต๊ฒ - C++ (0) | 2024.04.11 |