๐Ÿ“ฆ Chango/๐Ÿฃ EDOC

[BOJ][C++] ๋ฐฑ์ค€ 13305๋ฒˆ: ์ฃผ์œ ์†Œ

์„ ๋‹ฌ 2021. 9. 6. 20:31
๋ฐ˜์‘ํ˜•

https://www.acmicpc.net/problem/13305

 

13305๋ฒˆ: ์ฃผ์œ ์†Œ

ํ‘œ์ค€ ์ž…๋ ฅ์œผ๋กœ ๋‹ค์Œ ์ •๋ณด๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ์ฒซ ๋ฒˆ์งธ ์ค„์—๋Š” ๋„์‹œ์˜ ๊ฐœ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ •์ˆ˜ N(2 ≤ N ≤ 100,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‹ค์Œ ์ค„์—๋Š” ์ธ์ ‘ํ•œ ๋‘ ๋„์‹œ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๋„๋กœ์˜ ๊ธธ์ด๊ฐ€ ์ œ์ผ ์™ผ์ชฝ ๋„๋กœ๋ถ€ํ„ฐ N-1

www.acmicpc.net

 

๋ฌธ์ œ

์–ด๋–ค ๋‚˜๋ผ์— 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์  ์•„๋‹Œ๊ฑด ํ‹€๋ฆฐ๊ฑฐ๋‹ค.. ๊ทธ๋ƒฅ..

๋ฐ˜์‘ํ˜•