๋ฐ์—”์œผ๋กœ ์„ฑ์žฅ์ค‘ ๐ŸŒฑ

์•Œ๊ณ ๋ฆฌ์ฆ˜/[๋ฐฑ์ค€]

BOJ_16208 : ๊ท€์ฐฎ์Œ (C++)

์จ๋ฐ 2023. 2. 20. 09:41

ํ’€์ด ๋ฐฉ๋ฒ•

 

์›ํ•˜๋Š” ์‡ ๋ง‰๋Œ€์˜ ์ˆ˜์™€ ์›ํ•˜๋Š” ์‡ ๋ง‰๋Œ€์˜ ๊ธธ์ด๊ฐ€ ์ฃผ์–ด์ง„๋‹ค.

์ฒ˜์Œ์— ๋ฌธ์ œ ์ดํ•ด๊ฐ€ ์•ˆ๋˜์„œ ์ ‘๊ทผ์ด ๋งŽ์ด ์–ด๋ ค์› ๋Š”๋ฐ, ์ดํ•ดํ•˜๊ณ  ๋ณด๋ฉด ๋‹จ์ˆœํ•œ ์ˆ˜ํ•™ ๋ฐ ๊ตฌํ˜„ ๋ฌธ์ œ์ด๋‹ค.

 

์ฃผ์–ด์ง„ ์˜ˆ์ œ๋ฅผ ๋“ค์–ด ์ดํ•ดํ•ด๋ณด๋ฉด,

 

4

3 5 4 2

 

๋กœ ์ฃผ์–ด์ง€๋Š”๋ฐ,

 

์ฃผ์–ด์ง„ ์ด ์‡ ๋ง‰๋Œ€ ๊ธธ์ด์˜ ํ•ฉ์„ ๊ตฌํ•˜๋ฉด 3 + 5 + 4 + 2 = 14 ์ด๋‹ค.

 

14 -> 3(์›ํ•˜๋Š” ์‡ ๋ง‰๋Œ€ ๊ธธ์ด ์ฒซ๋ฒˆ์งธ ๊ฐ’), 11( = 14 - 3 = ์ด ์‡ ๋ง‰๋Œ€ ๊ธธ์ด - ์‡ ๋ง‰๋Œ€ ์ฒซ๋ฒˆ์งธ ๊ธธ์ด ๊ฐ’) : 3 * 11 = 33
11 - > 5(์›ํ•˜๋Š” ์‡ ๋ง‰๋Œ€ ๊ธธ์ด ๋‘๋ฒˆ์งธ ๊ฐ’), 6( = 11 - 5 = ํ˜„์žฌ ๋‚จ์€ ์‡ ๋ง‰๋Œ€ ๊ธธ์ด - ์‡ ๋ง‰๋Œ€ ๋‘๋ฒˆ์งธ ๊ธธ์ด ๊ฐ’) : 5 * 6 = 30
6 -> 4(์›ํ•˜๋Š” ์‡ ๋ง‰๋Œ€ ๊ธธ์ด ์„ธ๋ฒˆ์งธ ๊ฐ’), 2( = 6 - 4 = ํ˜„์žฌ ๋‚จ์€ ์‡ ๋ง‰๋Œ€ ๊ธธ์ด - ์‡ ๋ง‰๋Œ€ ์„ธ๋ฒˆ์งธ ๊ธธ์ด ๊ฐ’) : 4 * 2 = 8
2 -> 2(์›ํ•˜๋Š” ์‡ ๋ง‰๋Œ€ ๊ธธ์ด ๋„ค๋ฒˆ์งธ ๊ฐ’), 0( = 2 - 2 = ํ˜„์žฌ ๋‚จ์€ ์‡ ๋ง‰๋Œ€ ๊ธธ์ด - ์‡ ๋ง‰๋Œ€ ๋„ค๋ฒˆ์งธ ๊ธธ์ด ๊ฐ’) : 2 * 0 = 0

 

๋‹ต์€, 33 + 30 + 8 + 0 = 71 ์ด๋‹ค.

 

์ฆ‰, ์ฃผ์–ด์ง„ ๊ฐ ์‡ ๋ง‰๋Œ€ ๊ธธ์ด๋ฅผ ํ•ฉํ•œ ์‡ ๋ง‰๋Œ€ ๊ธธ์ด์˜ ์ด ํ•ฉ์„ ๊ตฌํ•œ ํ›„, ์‡ ๋ง‰๋Œ€ ๊ธธ์ด๋ฅผ ํ•˜๋‚˜์”ฉ ๋นผ์ค„๋•Œ ๋‚˜์˜ค๋Š” ๊ทธ ๋‘ ๊ฐœ์˜ ๊ฐ’์„ ๊ณฑํ•˜์—ฌ ๋”ํ•œ ํ•ฉ์ด ๊ตฌํ•ด์•ผ ํ•˜๋Š” ๊ฐ’์ด์˜€๋‹ค.

 

 

 

์ฝ”๋“œ

 

#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
#include <cmath>
#include <cstring>
#include <stack>
#include <queue>
#include <limits.h>
#include <regex>
#include <sstream>
#include <tuple>    
using namespace std;

int main() {

    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

    // ๋ง‰๋Œ€ ์ž˜๋ผ์„œ n๊ฐœ์˜ ์‡ ๋ง‰๋Œ€ ๋งŒ๋“ค๊ธฐ

    // x + y ๋ง‰๋Œ€ ๊ธธ์ด๋ฅผ x, y ๋‘๊ฐœ๋กœ ์ž๋ฅผ ๋•Œ, x*y ๋น„์šฉ ํ•„์š”
    // ์ตœ์†Œ ๋น„์šฉ์œผ๋กœ n๊ฐœ์˜ ์‡ ๋ง‰๋Œ€ ์–ป๊ธฐa

    int n; // ์›ํ•˜๋Š” ์‡ ๋ง‰๋Œ€ ์ˆ˜
    cin >> n;

    vector <long long> v; // ์›ํ•˜๋Š” ์‡ ๋ง‰๋Œ€ ๊ธธ์ด

    long long sum = 0;

    for(int i = 0; i < n; i++){
        int a;
        cin >> a;
        sum += a;
        v.push_back(a);
    }

    long long ans = 0;
    int idx = 0;

    for(int i = 0; i < v.size(); i++){
        sum -= v[i];
        ans += v[i] * sum;
    }    

    cout << ans << "\n";

    return 0;
}