์ฃผ์ ์(13305๋ฒ)
Silver 3
#๊ทธ๋ฆฌ๋ ์๊ณ ๋ฆฌ์ฆ
https://www.acmicpc.net/problem/13305
๋ฌธ์ ๋ด์ฉ
๋ฌธ์ ์ ๊ทผ
์ด ์ฌ์ง์์ ์ ์์ ์๊ฐ 1L๋น ๊ธฐ๋ฆ์ ๊ฐ์ด๊ณ ์ ์ฌ์ด์ ์ฐ๊ฒฐ๋ ์ ์ด ๋์ ๊ฐ ๋๋ก์ ๊ธธ์ด์ผ ๋, ์ ์ ๊ธฐ๋ฆ๊ฐ์ผ๋ก ์ฒซ ๋ฒ์งธ ๋์์์ ๋ง์ง๋ง ๋์๊น์ง ์ด๋ํ ์ ์๋ ๊ฒฝ์ฐ๋ฅผ ๊ตฌํด์ผ ํ๋ค.
์ ์์ ์์๋ 5์์ง๋ฆฌ 2L๋ฅผ ์ฒซ ๋ฒ์งธ ๋์์์ ๊ตฌ๋งคํด ์ฃผ๊ณ , 2์์ง๋ฆฌ 4L๋ฅผ ๋ ๋ฒ์งธ ๋์์์ ๊ตฌํ๋ค. 4L๋ก 2, 3๋ฒ์งธ ๋๋ก๋ฅผ ์ง๋ ์ ์๋ค. ๊ทธ๋์ ์ ๋ต์ 18์ด๋ค.
๊ฐ์ฅ ์ ์ ๊ธฐ๋ฆ๊ฐ์ด ๋ค์ด์ผ ํ๊ธฐ ๋๋ฌธ์ ๊ธฐ๋ฆ๊ฐ์ด ์ด๋ํ๋ฉด์ ์ฆ๊ฐํ๋ฉด ์ ๋๋ค.
์ธ ๋ฒ์งธ ๊ฒฝ์ฐ์๋ ์๋๋ 1L๋น 4์์ด ํ์ํ์ง๋ง ์ด์ ๋์์ 2์์ด ๋ ์ ๋ ดํ๊ธฐ ๋๋ฌธ์ 2์๋ง ์ฐ๊ณ ๋ 3๋ฒ์งธ ๋๋ก๋ฅผ ์ด์ฉํ ์ ์๋ค.
๋ค์ ์ ์ด ๋ณด๋ฉด, ์ด 3๋จ๊ณ๋ก ์๊ธ์ ์ฒญ๊ตฌํ๋ค.
1. ๊ธฐ๋ฆ 2L, 1L๋น 5์์ด๋ฏ๋ก 10์
2. ๊ธฐ๋ฆ 3L, 1L๋น 2์์ด๋ฏ๋ก 10 + 6์
3. ๊ธฐ๋ฆ 1L, 1L๋น 4์์ด์ง๋ง, 2๋ฒ์์ 1L๋ฅผ ๋ ๋ด์ ์ค๋ฉด 10 + 6 + 2 = 18์
์์ ๊ฐ์ ๋จ๊ณ๋ก ์ด๋ฃจ์ด์ง๋ค.
3๋ฒ์งธ์ ๊ฒฝ์ฐ๋ ๊ทธ๋ฅ 2์์ง๋ฆฌ ๊ธฐ๋ฆ 1L๋ฅผ ์ถ๊ฐ๋ก ๊ตฌ๋งคํ๋ค๊ณ ์๊ฐํ๋ฉด ๊ท์น์ ์ฐพ์ ์ ์๋ค.
๋ฐ๋ก 1L๋น ๊ธฐ๋ฆ ๊ฐ์ด ๋ด๋ฆผ์ฐจ์์ด์ด์ผ ํ๋ค.
์ ๋ ฅ ์์ 1๋ถํฐ ์ฒ์์๋ ๋ฆฌํฐ๋น ๊ธฐ๋ฆ ๊ฐ์ด 5์์ด์๋ค๊ฐ 2์์ด ๋๋ค. 3๋ฒ์งธ์์๋ 4์์ด์ง๋ง, 2์์ง๋ฆฌ 1L๋ฅผ ๊ตฌ๋งคํ ๊ฒ๊ณผ ๋ค๋ฆ์ด ์์ด์ ๋๊ฐ์ด 2์์ด๋ค.
5 -> 2 -> 2 ์์ผ๋ก ๋ฆฌํฐ ๋น ๊ธฐ๋ฆ๊ฐ์ด ์์์ก๋ค.
์ด๋ฅผ ์ด์ฉํด์ ๋ค์ ๋์์ ๋ฆฌํฐ ๋น ๊ธฐ๋ฆ๊ฐ์ด ์ด์ ๋์๋ณด๋ค ๋น์ธ๋ฉด ์ด์ ๋์์ ๊ธฐ๋ฆ๊ฐ์ ์ด์ฉํด ๊ธฐ๋ฆ์ ๊ตฌ์ ํ๋ค.
๋ค๋ฅด๊ฒ ๋งํ๋ฉด ์ด์ ๋์์์ ํ์ฌ ๋์์ ๋๋ก๋ฅผ ์ง๋๋ ๋ฐ ํ์ํ ๊ธฐ๋ฆ๊น์ง ๊ฐ์ด ์ฐ๋ค๊ณ ์๊ฐํ๋ฉด ๋๋ค.
<์กฐ๊ฑด 1>
๊ทธ๋ฌ๋ฉด ์ด์ ๊ธฐ๋ฆ๊ฐ๋ณด๋ค ํ์ฌ ๊ธฐ๋ฆ๊ฐ์ด ๋ ์ธ๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ ๊น? ๋น์ฐํ ํ์ฌ์ ๊ธฐ๋ฆ๊ฐ์ผ๋ก ๊ธฐ๋ฆ์ ๊ตฌ๋งคํด์ผ ํ๋ค.
๊ทธ ์ดํ์ ๋์์์๋ ๋ค์ ๋์์ ๊ธฐ๋ฆ๊ฐ์ด ๋ ์ธ์ง ๋๊น์ง ๋์๋ฅผ ์ง๋๋ฉด์ ๊ธฐ๋ฆ์ ์ด์ ์ ๊ธฐ๋ฆ๊ฐ์ ์ด์ฉํ๋ฉด ๋๋ค.
if (gasStation[i] < toAddGas) toAddGas = gasStation[i]
ํ์ฌ ๊ธฐ๋ฆ๊ฐ์ gasStateion์ด๋ผ๊ณ ํ๊ณ , ์ด์ ๊ธฐ๋ฆ๊ฐ์ toAddGas๋ผ๊ณ ํ ๋, ์ด์ ๊ธฐ๋ฆ๊ฐ๋ณด๋ค ํ์ฌ ๊ธฐ๋ฆ๊ฐ์ด ๋ ์ ๋๋ง toAddGas๋ฅผ ๋ณ๊ฒฝํ๊ณ ๋๋ก์ ๊ธธ์ด๋งํผ ๊ณฑํด์ฃผ๋ฉด ๋๋ค.
์ด ๊ณต์์ ๋ด๊ฐ ๋ค๋ฅธ ๋ถ์ ํฌ์คํ ์ผ๋ก ๊ณต๋ถํด์ ๋ด๊ฐ ์ดํดํ ๊ฒ์ ๋ฐํ์ผ๋ก ์ ๋ฆฌํ๋ค.
https://st-lab.tistory.com/192
๋ฌธ์ ํด๊ฒฐ ์ฝ๋
import java.io.BufferedReader
import java.io.InputStreamReader
fun main() = with(BufferedReader(InputStreamReader(System.`in`))) {
val cityCnt = readLine().toInt()
val road = readLine().split(" ").map { it.toLong() }
val gasStation = readLine().split(" ").map { it.toLong() }
var cost = 0L
var toAddGas = gasStation[0]
for (i in road.indices) {
if (gasStation[i] < toAddGas) toAddGas = gasStation[i]
cost += toAddGas * road[i]
}
println(cost)
}
๋ฌธ์ ํ์ด
๋๋ก์ ์ ๋ณด(road)์ ๋ฆฌํฐ ๋น ๊ธฐ๋ฆ์ ๊ฐ๊ฒฉ(gasStation)์ ๋ฐ๊ณ , ์กฐ๊ฑด 1์ ๋ฐ๋ผ toAddGas๋ฅผ ๋ณ๊ฒฝํ๊ณ cost์ toAddGas์ ๋๋ก์ ๊ธธ์ด๋ฅผ ๊ณฑํ ์๋งํผ ๋์ ํด์ ๋ํด์ค๋ค.
๋ฌธ์ ํด๊ฒฐ ๊ณผ์
๋๋ก์ ๋ฆฌํฐ๋น ๊ธฐ๋ฆ๊ฐ์ ์ ํ์ด 100์ต์ด๋ผ์ int๋ก ํ๋ฉด ๋ฌด์กฐ๊ฑด ๋ฒ์๋ฅผ ์ด๊ณผํ๊ฒ ๋๋ค.
๊ทธ๋์ Longํ์ ์ผ๋ก ํด์ผ ํ๋ ๊ฒ๋ง ์กฐ์ฌํ๋ฉด ๋ฌธ์ ๋ฅผ ์ฝ๊ฒ ํด๊ฒฐํ ์ ์๋ค.
'๐ฏ | ๋ฐฑ์ค > ๐ | Silver' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Kotlin, S3] ๋ฐฑ์ค 8911๋ฒ ๊ฑฐ๋ถ์ด (0) | 2024.08.30 |
---|---|
[Kotlin, S4] ๋ฐฑ์ค 1337๋ฒ ์ฌ๋ฐ๋ฅธ ๋ฐฐ์ด (0) | 2024.08.29 |
[Kotlin, S2] ๋ฐฑ์ค 1912๋ฒ ์ฐ์ํฉ (0) | 2024.08.26 |
[Kotlin, S2] ๋ฐฑ์ค 2716๋ฒ ์์ญ์ด ๋งค๋ฌ๊ธฐ (0) | 2024.08.25 |
[Kotlin] ๋ฐฑ์ค 16506๋ฒ CPU (0) | 2024.08.23 |