https://www.acmicpc.net/problem/13305
๋ฌธ์
์ด๋ค ๋๋ผ์ 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์์ด๋ค.
๊ฐ ๋์์ ์๋ ์ฃผ์ ์์ ๊ธฐ๋ฆ ๊ฐ๊ฒฉ๊ณผ, ๊ฐ ๋์๋ฅผ ์ฐ๊ฒฐํ๋ ๋๋ก์ ๊ธธ์ด๋ฅผ ์ ๋ ฅ์ผ๋ก ๋ฐ์ ์ ์ผ ์ผ์ชฝ ๋์์์ ์ ์ผ ์ค๋ฅธ์ชฝ ๋์๋ก ์ด๋ํ๋ ์ต์์ ๋น์ฉ์ ๊ณ์ฐํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
ํ์ค ์ ๋ ฅ์ผ๋ก ๋ค์ ์ ๋ณด๊ฐ ์ฃผ์ด์ง๋ค. ์ฒซ ๋ฒ์งธ ์ค์๋ ๋์์ ๊ฐ์๋ฅผ ๋ํ๋ด๋ ์ ์ N(2 ≤ N ≤ 100,000)์ด ์ฃผ์ด์ง๋ค. ๋ค์ ์ค์๋ ์ธ์ ํ ๋ ๋์๋ฅผ ์ฐ๊ฒฐํ๋ ๋๋ก์ ๊ธธ์ด๊ฐ ์ ์ผ ์ผ์ชฝ ๋๋ก๋ถํฐ N-1๊ฐ์ ์์ฐ์๋ก ์ฃผ์ด์ง๋ค. ๋ค์ ์ค์๋ ์ฃผ์ ์์ ๋ฆฌํฐ๋น ๊ฐ๊ฒฉ์ด ์ ์ผ ์ผ์ชฝ ๋์๋ถํฐ ์์๋๋ก N๊ฐ์ ์์ฐ์๋ก ์ฃผ์ด์ง๋ค. ์ ์ผ ์ผ์ชฝ ๋์๋ถํฐ ์ ์ผ ์ค๋ฅธ์ชฝ ๋์๊น์ง์ ๊ฑฐ๋ฆฌ๋ 1์ด์ 1,000,000,000 ์ดํ์ ์์ฐ์์ด๋ค. ๋ฆฌํฐ๋น ๊ฐ๊ฒฉ์ 1 ์ด์ 1,000,000,000 ์ดํ์ ์์ฐ์์ด๋ค.
์ถ๋ ฅ
ํ์ค ์ถ๋ ฅ์ผ๋ก ์ ์ผ ์ผ์ชฝ ๋์์์ ์ ์ผ ์ค๋ฅธ์ชฝ ๋์๋ก ๊ฐ๋ ์ต์ ๋น์ฉ์ ์ถ๋ ฅํ๋ค.
ํ์ด
#include <iostream>
using namespace std;
int main() {
//์
๋ ฅ
int n;
cin >> n;
long long road[n-1], cost[n];
for(int i=0; i<n-1; i++){
cin >> road[i];
}
for(int i=0; i<n; i++){
cin >> cost[i];
}
//๊ณ์ฐ
for(int i=0; i<n-1; i++){
if(cost[i] < cost[i+1]){
cost[i+1] = cost[i];
}
}
long long ans=0;
for(int i=0; i<n-1; i++){
ans += cost[i]*road[i];
}
//์ถ๋ ฅ
cout << ans;
return 0;
}
TIL
๋ฐฑ์ค์์ ์๋ธํ์คํฌ ๋ฌธ์ ๋ฅผ ์ฒ์ ํ์ด๋ดค๋ผใ ใ ใ ใ ใ ใ
ํ๋ฆฌ๋ฉด ํ๋ฆฐ๊ฑฐ๊ณ ๋ง์ผ๋ฉด ๋ง์๊ฑฐ์ง ๋ถ๋ถ์ ์๋ ๋ญ๋....ใ ใ
์๋ธํ์คํฌ
๋ฒํธ๋ฐฐ์ ์ ํ
1 | 17 | ๋ชจ๋ ์ฃผ์ ์์ ๋ฆฌํฐ๋น ๊ฐ๊ฒฉ์ 1์์ด๋ค. |
2 | 41 | 2 ≤ N ≤ 1,000, ์ ์ผ ์ผ์ชฝ ๋์๋ถํฐ ์ ์ผ ์ค๋ฅธ์ชฝ ๋์๊น์ง์ ๊ฑฐ๋ฆฌ๋ ์ต๋ 10,000, ๋ฆฌํฐ ๋น ๊ฐ๊ฒฉ์ ์ต๋ 10,000์ด๋ค. |
3 | 42 | ์๋์ ์ ์ฝ์กฐ๊ฑด ์ด์ธ์ ์๋ฌด ์ ์ฝ์กฐ๊ฑด์ด ์๋ค. |
54์ ์ด๋ผ๋๊ฑด 3๋ฒ ์กฐ๊ฑด์ ์ถฉ์กฑ์ํค์ง ๋ชปํ๋ค๋๊ฑด๋ฐ
์ด ์ ์ฝ์กฐ๊ฑด์ด๋ผ๋๊ฒ ๊ทธ ์์ ํฌ๊ธฐ์๋ค
int๊ฐ ์๋ long long ์ ์จ์ผํ๋๊ฒ..!
๊ทผ๋ฐ.. ์ด๊ฑฐ ๋ฐฉ๊ธ ํผ ๋ฌธ์ ๋ ์๋ฃํ๋๋ฌธ์ ๊ณ ์ํ๋๋ฐ..ใ ใ ใ ใ ใ ใ
์๋ฌดํผ.. ๊ฒฐ๋ก ์ 100์ ์๋๊ฑด ํ๋ฆฐ๊ฑฐ๋ค.. ๊ทธ๋ฅ..
'๐ฆ Chango > ๐ฃ EDOC' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ G5][C++] ๋ฐฑ์ค 14891๋ฒ: ํฑ๋๋ฐํด (0) | 2021.09.08 |
---|---|
[BOJ][C++] ๋ฐฑ์ค 1074๋ฒ: Z (0) | 2021.09.07 |
[BOJ][C++] 13458๋ฒ: ์ํ ๊ฐ๋ (0) | 2021.09.06 |
[BOJ][C++] ๋ฐฑ์ค 1259๋ฒ: ํฐ๋ฆฐ๋๋กฌ์ (0) | 2021.09.06 |
[C++][BOJ] ๋ฐฑ์ค 15366๋ฒ: Olivander (0) | 2021.08.25 |