๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Coding Test/Algorithms

[Baekjoon] 13305.์ฃผ์œ ์†Œ/Python - Silver3

by The Future Engineer, Lucy 2024. 11. 1.
728x90
๋ฐ˜์‘ํ˜•

โ“๋ฌธ์ œ

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๋งŒ ํ†ต๊ณผํ–ˆ๋‹ค. ์ฃผ์–ด์ง„ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋ฅผ ๋ณด์•˜์„ ๋•Œ ๊ฒฐ๊ณผ๊ฐ€ ๊ฐ™์•„์„œ ๋งž๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์ง€๋งŒ ์ฝ”๋“œ๋ฅผ ๋‹ค์‹œ ๋ณด๋‹ˆ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์ œ๋Œ€๋กœ ๊ณ ๋ คํ•˜์ง€ ๋ชปํ–ˆ๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ฌ์•˜๋‹ค. ์ œ๋ฐœ ๋ฌธ์ œ ์ œ๋Œ€๋กœ ์ฝ๊ณ  ์—ฌ๋Ÿฌ ๋ฒˆ ์ƒ๊ฐํ•˜์ž๐Ÿ˜‚

728x90
๋ฐ˜์‘ํ˜•