๐Ÿ’ญ Problem Solving/C++

[SWEA][C++] 1206. [S/W ๋ฌธ์ œํ•ด๊ฒฐ ๊ธฐ๋ณธ] 1์ผ์ฐจ - View

0=2. 2024. 4. 24. 22:48

๋ฌธ์ œ

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV134DPqAA8CFAYh&

 

SW Expert Academy

SW ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์—ญ๋Ÿ‰ ๊ฐ•ํ™”์— ๋„์›€์ด ๋˜๋Š” ๋‹ค์–‘ํ•œ ํ•™์Šต ์ปจํ…์ธ ๋ฅผ ํ™•์ธํ•˜์„ธ์š”!

swexpertacademy.com

 

ํ’€์ด

๊ฑด๋ฌผ์€ ์™ผ์ชฝ์—์„œ 3๋ฒˆ์งธ ์นธ๋ถ€ํ„ฐ ์˜ค๋ฅธ์ชฝ์—์„œ 3๋ฒˆ์งธ ์นธ๊นŒ์ง€ ์กด์žฌํ•œ๋‹ค.

์กฐ๋ง๊ถŒ์ด ํ™•๋ณด๋œ ์„ธ๋Œ€๋Š” ์™ผ์ชฝ 2์นธ, ์˜ค๋ฅธ์ชฝ 2์นธ์— ๋‹ค๋ฅธ ์„ธ๋Œ€๊ฐ€ ์—†์–ด์•ผ ํ•œ๋‹ค. ์ฆ‰, ์™ผ์ชฝ 2์นธ, ์˜ค๋ฅธ์ชฝ 2์นธ์— ์žˆ๋Š” ๊ฑด๋ฌผ๋ณด๋‹ค ๋†’์œผ๋ฉด ์กฐ๋ง๊ถŒ์ด ํ™•๋ณด๋œ ์„ธ๋Œ€๊ฐ€ ์กด์žฌํ•œ๋‹ค.

 

์ด๋ฅผ ์ด์šฉํ•˜์—ฌ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฌธ์ œ๋ฅผ ํ’€ ์ˆ˜ ์žˆ๋‹ค.

1. ์™ผ์ชฝ์—์„œ 3๋ฒˆ์งธ ๊ฑด๋ฌผ๋ถ€ํ„ฐ ์˜ค๋ฅธ์ชฝ์—์„œ 3๋ฒˆ์งธ ๊ฑด๋ฌผ๊นŒ์ง€ ํƒ์ƒ‰ํ•œ๋‹ค.
    => i์˜ ๋ฒ”์œ„๋Š” 2 ~ n-3์ด๋‹ค.
2. ํ˜„์žฌ ํƒ์ƒ‰ํ•˜๋Š” ๊ฑด๋ฌผ์ด ์™ผ์ชฝ์˜ ๋‘ ๊ฑด๋ฌผ๊ณผ ์˜ค๋ฅธ์ชฝ์˜ ๋‘ ๊ฑด๋ฌผ๋ณด๋‹ค ๋†’์œผ๋ฉด ์กฐ๋ง๊ถŒ์ด ํ™•๋ณด๋œ ์„ธ๋Œ€๊ฐ€ ์กด์žฌํ•œ๋‹ค.
    => ํ˜„์žฌ ํƒ์ƒ‰ํ•˜๋Š” ๊ฑด๋ฌผ i์™€ i-2, i-1, i+1, i+2๋ฒˆ์งธ ๊ฑด๋ฌผ์„ ๋น„๊ตํ•œ๋‹ค.
3. ํ˜„์žฌ ํƒ์ƒ‰ํ•˜๋Š” ๊ฑด๋ฌผ์—์„œ ์กฐ๋ง๊ถŒ์ด ํ™•๋ณด๋œ ์„ธ๋Œ€์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค.
    => i๋ฒˆ์งธ ๊ฑด๋ฌผ์˜ ๋†’์ด - ์–‘ ์˜† 4๊ฐœ์˜ ๊ฑด๋ฌผ ์ค‘ ๊ฐ€์žฅ ๋†’์€ ๊ฑด๋ฌผ์˜ ๋†’์ด

 

์ฝ”๋“œ

#include<iostream>
#include<vector>

using namespace std;

int main() {
    int T = 10;

    for (int test_case = 1; test_case <= T; ++test_case) {
        int n, ans = 0;

        // ์ž…๋ ฅ
        cin >> n;

        vector<int> building(n, 0);
        for (int &i: building)
            cin >> i;

        // ์—ฐ์‚ฐ
        for (int i = 2; i < n - 2; i++) {
            int max_building = max(max(building[i + 1], building[i + 2]), max(building[i - 1], building[i - 2]));
            if (building[i] > max_building)
                ans += building[i] - max_building;
        }

        // ์ถœ๋ ฅ
        cout << '#' << test_case << ' ' << ans << '\n';
    }

    return 0;
}