โ๋ฌธ์
https://www.acmicpc.net/problem/13305
๋ฉ๋ชจ๋ฆฌ: 46228 KB, ์๊ฐ: 112 ms
์ด๋ค ๋๋ผ์ N๊ฐ์ ๋์๊ฐ ์๋ค. ์ด ๋์๋ค์ ์ผ์ง์ ๋๋ก ์์ ์๋ค. ํธ์์ ์ผ์ง์ ์ ์ํ ๋ฐฉํฅ์ผ๋ก ๋์. ์ ์ผ ์ผ์ชฝ์ ๋์์์ ์ ์ผ ์ค๋ฅธ์ชฝ์ ๋์๋ก ์๋์ฐจ๋ฅผ ์ด์ฉํ์ฌ ์ด๋ํ๋ ค๊ณ ํ๋ค. ์ธ์ ํ ๋ ๋์ ์ฌ์ด์ ๋๋ก๋ค์ ์๋ก ๊ธธ์ด๊ฐ ๋ค๋ฅผ ์ ์๋ค. ๋๋ก ๊ธธ์ด์ ๋จ์๋ km๋ฅผ ์ฌ์ฉํ๋ค.
์ฒ์ ์ถ๋ฐํ ๋ ์๋์ฐจ์๋ ๊ธฐ๋ฆ์ด ์์ด์ ์ฃผ์ ์์์ ๊ธฐ๋ฆ์ ๋ฃ๊ณ ์ถ๋ฐํ์ฌ์ผ ํ๋ค. ๊ธฐ๋ฆํต์ ํฌ๊ธฐ๋ ๋ฌด์ ํ์ด์ด์ ์ผ๋ง๋ ์ง ๋ง์ ๊ธฐ๋ฆ์ ๋ฃ์ ์ ์๋ค. ๋๋ก๋ฅผ ์ด์ฉํ์ฌ ์ด๋ํ ๋ 1km๋ง๋ค 1๋ฆฌํฐ์ ๊ธฐ๋ฆ์ ์ฌ์ฉํ๋ค. ๊ฐ ๋์์๋ ๋จ ํ๋์ ์ฃผ์ ์๊ฐ ์์ผ๋ฉฐ, ๋์ ๋ง๋ค ์ฃผ์ ์์ ๋ฆฌํฐ๋น ๊ฐ๊ฒฉ์ ๋ค๋ฅผ ์ ์๋ค. ๊ฐ๊ฒฉ์ ๋จ์๋ ์์ ์ฌ์ฉํ๋ค.
์๋ฅผ ๋ค์ด, ์ด ๋๋ผ์ ๋ค์ ๊ทธ๋ฆผ์ฒ๋ผ 4๊ฐ์ ๋์๊ฐ ์๋ค๊ณ ํ์. ์ ์์ ์๋ ์ซ์๋ ๊ทธ ๋์์ ์๋ ์ฃผ์ ์์ ๋ฆฌํฐ๋น ๊ฐ๊ฒฉ์ด๋ค. ๋๋ก ์์ ์๋ ์ซ์๋ ๋๋ก์ ๊ธธ์ด๋ฅผ ํ์ํ ๊ฒ์ด๋ค.
์ ์ผ ์ผ์ชฝ ๋์์์ 6๋ฆฌํฐ์ ๊ธฐ๋ฆ์ ๋ฃ๊ณ , ๋ ์ด์์ ์ฃผ์ ์์ด ์ ์ผ ์ค๋ฅธ์ชฝ ๋์๊น์ง ์ด๋ํ๋ฉด ์ด ๋น์ฉ์ 30์์ด๋ค. ๋ง์ฝ ์ ์ผ ์ผ์ชฝ ๋์์์ 2๋ฆฌํฐ์ ๊ธฐ๋ฆ์ ๋ฃ๊ณ (2ร5 = 10์) ๋ค์ ๋ฒ ๋์๊น์ง ์ด๋ํ ํ 3๋ฆฌํฐ์ ๊ธฐ๋ฆ์ ๋ฃ๊ณ (3ร2 = 6์) ๋ค์ ๋์์์ 1๋ฆฌํฐ์ ๊ธฐ๋ฆ์ ๋ฃ์ด(1ร4 = 4์) ์ ์ผ ์ค๋ฅธ์ชฝ ๋์๋ก ์ด๋ํ๋ฉด, ์ด ๋น์ฉ์ 20์์ด๋ค. ๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ผ๋ก ์ ์ผ ์ผ์ชฝ ๋์์์ 2๋ฆฌํฐ์ ๊ธฐ๋ฆ์ ๋ฃ๊ณ (2ร5 = 10์) ๋ค์ ๋ฒ ๋์๊น์ง ์ด๋ํ ํ 4๋ฆฌํฐ์ ๊ธฐ๋ฆ์ ๋ฃ๊ณ (4ร2 = 8์) ์ ์ผ ์ค๋ฅธ์ชฝ ๋์๊น์ง ์ด๋ํ๋ฉด, ์ด ๋น์ฉ์ 18์์ด๋ค.
๊ฐ ๋์์ ์๋ ์ฃผ์ ์์ ๊ธฐ๋ฆ ๊ฐ๊ฒฉ๊ณผ, ๊ฐ ๋์๋ฅผ ์ฐ๊ฒฐํ๋ ๋๋ก์ ๊ธธ์ด๋ฅผ ์
๋ ฅ์ผ๋ก ๋ฐ์ ์ ์ผ ์ผ์ชฝ ๋์์์ ์ ์ผ ์ค๋ฅธ์ชฝ ๋์๋ก ์ด๋ํ๋ ์ต์์ ๋น์ฉ์ ๊ณ์ฐํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
โ๐ปํ์ด
์ฐ๋ฆฌ๋ ์ ์ผ ์ค๋ฅธ์ชฝ ๋์๊น์ง ๊ฐ๋ ๋ฐ ์ต์ ๋น์ฉ์ผ๋ก ์ฃผ์ ํด์ผ ํ๋ค.
์ ์ผ ์ผ์ชฝ ๋์์ ์ฃผ์ ์์ ๊ฐ๊ฒฉ์ด ์ต์๊ฐ์ด๋ผ๊ณ ์๊ฐํ์ ๋ ์ด 30์ด ๋์จ๋ค.
๋ชจ๋ ๊ฒฝ์ฐ๋ฅผ ๊ณ ๋ คํ์ฌ ๊ณ์ฐํ์ ๋ 5x2 + 2x(3+1)์ผ ๋๊ฐ 18๋ก ๊ฐ์ฅ ์ ๋ค.
์ด๋ํ๊ธฐ ์ํด์๋ ์ฒซ ์ฃผ์ ์์์๋ ๋ฌด์กฐ๊ฑด ์ฃผ์ ๋ฅผ ํด์ผ ํ๋ค. ๊ทธ๋ฌ๋ฏ๋ก dp[0]์ ์ฒซ ์ฃผ์ ์ ๊ฐ๊ฒฉ * ๋๋ก ๊ธธ์ด์ด๋ค.
๊ทธ ๋ค์ ์ฃผ์ ์์์๋ ์ด์ ์ฃผ์ ์ ๊ฐ๊ฒฉ๊ณผ ๋น๊ตํ์ ๋ ์ต์ ๊ฐ๊ฒฉ์ ๊ณจ๋ผ ๊ณ์ฐํ๋ค.
์ด์ ์ฃผ์ ์๋ 5์ด๊ณ ํ์ฌ ๋์์ ์ฃผ์ ์๋ 2์ด๋ค. ๊ทธ๋ฌ๋ฏ๋ก 2๋ฅผ ํํ๋ค.
๊ทธ ๋ค์ ๋์๋ 4๋ก ์ด์ ๋์์ ๊ฐ๊ฒฉ์ด ๋ ์ ๋ค. ๋ฐ๋ผ์ 2x1์ ๋ํ๋ค.
์ด ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก ๊ฐ์ฅ ์ค๋ฅธ์ชฝ ๋์์ ๋์ฐฉํ ๋๊น์ง ์ต์ ๊ฐ๊ฒฉ * ๋๋ก ๊ธธ์ด๋ฅผ ํ์ฌ ์ต์ ๋น์ฉ์ ๊ตฌํ๋ค.
๐ป์ฝ๋
# ์๋ธํ์คํฌ 1 ์ฑ๊ณต(์ด์ ์ฃผ์ ์์ ๊ฐ๊ฒฉํ๊ณ ๋ง ๋น๊ต)
import sys
input = sys.stdin.readline
n = int(input())
lengths = list(map(int, input().split()))
prices = list(map(int, input().split()))
dp = [0] * (n - 1)
dp[0] = lengths[0] * prices[0]
for i in range(1, n - 1):
dp[i] = dp[i - 1] + min(lengths[i] * prices[i], lengths[i] * prices[i - 1])
print(dp[n - 2])
# ์ ๋ต ์ฝ๋
import sys
input = sys.stdin.readline
n = int(input())
lengths = list(map(int, input().split()))
prices = list(map(int, input().split()))
dp = [0] * (n - 1)
dp[0] = lengths[0] * prices[0]
minCost = prices[0]
for i in range(1, n - 1):
if minCost > prices[i]:
minCost = prices[i]
dp[i] = dp[i - 1] + minCost * lengths[i]
print(dp[n - 2])
๐ํ๊ธฐ
๊ฒฝ์ฐ์ ์๋ฅผ ๋ฐ์ ธ๋๊ณ ์ด์ ์ฃผ์ ์์ ๊ฐ๊ฒฉํ๊ณ ๋ง ๋น๊ตํ์ฌ ์๋ธํ์คํฌ 1๋ง ํต๊ณผํ๋ค. ์ฃผ์ด์ง ํ ์คํธ ์ผ์ด์ค๋ฅผ ๋ณด์์ ๋ ๊ฒฐ๊ณผ๊ฐ ๊ฐ์์ ๋ง๋ค๊ณ ์๊ฐํ์ง๋ง ์ฝ๋๋ฅผ ๋ค์ ๋ณด๋ ๊ฒฝ์ฐ์ ์๋ฅผ ์ ๋๋ก ๊ณ ๋ คํ์ง ๋ชปํ๋ค๋ ๊ฒ์ ๊นจ๋ฌ์๋ค. ์ ๋ฐ ๋ฌธ์ ์ ๋๋ก ์ฝ๊ณ ์ฌ๋ฌ ๋ฒ ์๊ฐํ์๐
'Coding Test > Algorithms' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[SWEA] 2805.๋์๋ฌผ ์ํํ๊ธฐ/Python - D3 (0) | 2024.11.11 |
---|---|
[Baekjoon] 2565.์ ๊น์ค/Python - Gold5 (0) | 2024.11.05 |
[์ํํฐ์ด] ์ง๊ฒ๋ค๋ฆฌ/Python - Lv.3 (0) | 2024.10.30 |
[์ํํฐ์ด] ์ฅ์ ๋ฌผ ์ธ์ ํ๋ก๊ทธ๋จ/Python - Lv.2 (0) | 2024.10.29 |
[ํ๋ก๊ทธ๋๋จธ์ค] ์์ ์ฐพ๊ธฐ/Python - Lv.2 (0) | 2024.10.25 |