๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“ ์•Œ๊ณ ๋ฆฌ์ฆ˜/Code Tree

[์ฝ”๋“œํŠธ๋ฆฌ] ์™„์ „ํƒ์ƒ‰ / ์ž๋ฆฌ ์ˆ˜ ๋‹จ์œ„๋กœ ์™„ํƒ ์—ฐ์Šต๋ฌธ์ œ

by xxilliant 2023. 2. 22.
728x90
๋ฐ˜์‘ํ˜•

 

5๊ฐœ์˜ ์ˆซ์ž [1, 5, 2, 6, 8]์ด ์ฃผ์–ด์กŒ์„ ๋•Œ
์ด ์ค‘ ๋‹จ ํ•˜๋‚˜์˜ ์ˆซ์ž๋งŒ ๋‘ ๋ฐฐ๋กœ ํ•ด์„œ, ์ธ์ ‘ํ•œ ์ˆซ์ž๊ฐ„์˜ ์ฐจ์ด์˜ ํ•ฉ์ด ์ตœ๋Œ€๊ฐ€ ๋˜๋„๋ก ํ•ด๋ณด์„ธ์š”.
 

์œ„ ๋ฌธ์ œ๋Š” ๋‹จ์ˆœํ•˜๊ฒŒ, ๋ชจ๋“  ์œ„์น˜์˜ ์ˆซ์ž๋ฅผ 2๋ฐฐ์”ฉ ํ•ด๋ณด๋Š” ์™„์ „ํƒ์ƒ‰์„ ์ง„ํ–‰ํ•ด ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

1. ์ฒซ ๋ฒˆ์งธ ์ˆซ์ž 1์— 2๋ฐฐ๋ฅผ ํ•˜๋Š” ๊ฒฝ์šฐ
[2, 5, 2, 6, 8]์ด ๋˜๋ฏ€๋กœ, ์ธ์ ‘ํ•œ ์ˆซ์ž๊ฐ„์˜ ์ฐจ์ด์˜ ํ•ฉ์€ 3 + 3 + 4 + 2 = 12๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

2. ๋‘ ๋ฒˆ์งธ ์ˆซ์ž 5์— 2๋ฐฐ๋ฅผ ํ•˜๋Š” ๊ฒฝ์šฐ
[1, 10, 2, 6, 8]์ด ๋‚จ๊ฒŒ ๋˜๋ฏ€๋กœ, ์ธ์ ‘ํ•œ ์ˆซ์ž๊ฐ„์˜ ์ฐจ์ด์˜ ํ•ฉ์€ 9 + 8 + 4 + 2 = 23์ด ๋ฉ๋‹ˆ๋‹ค.

3. ์„ธ ๋ฒˆ์งธ ์ˆซ์ž 2์— 2๋ฐฐ๋ฅผ ํ•˜๋Š” ๊ฒฝ์šฐ
[1, 5, 4, 6, 8]์ด ๋‚จ๊ฒŒ ๋˜๋ฏ€๋กœ, ์ธ์ ‘ํ•œ ์ˆซ์ž๊ฐ„์˜ ์ฐจ์ด์˜ ํ•ฉ์€ 4 + 1 + 2 + 2 = 9๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

4. ๋„ค ๋ฒˆ์งธ ์ˆซ์ž 6์— 2๋ฐฐ๋ฅผ ํ•˜๋Š” ๊ฒฝ์šฐ
[1, 5, 2, 12, 8]์ด ๋‚จ๊ฒŒ ๋˜๋ฏ€๋กœ, ์ธ์ ‘ํ•œ ์ˆซ์ž๊ฐ„์˜ ์ฐจ์ด์˜ ํ•ฉ์€ 4 + 3 + 10 + 4 = 21์ด ๋ฉ๋‹ˆ๋‹ค.

5. ๋‹ค์„ฏ ๋ฒˆ์งธ ์ˆซ์ž 8์— 2๋ฐฐ๋ฅผ ํ•˜๋Š” ๊ฒฝ์šฐ
[1, 5, 2, 6, 16]์ด ๋‚จ๊ฒŒ ๋˜๋ฏ€๋กœ, ์ธ์ ‘ํ•œ ์ˆซ์ž๊ฐ„์˜ ์ฐจ์ด์˜ ํ•ฉ์€ 4 + 3 + 4 + 10 = 21์ด ๋ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์ตœ๋Œ€๋Š” 23์ด ๋ฉ๋‹ˆ๋‹ค.
 

 

์ด์ฒ˜๋Ÿผ ๊ฐ ์ž๋ฆฌ์— ๋Œ€ํ•ด ์ƒํ™ฉ์„ ์ผ์ผ์ด ๊ฐ€์ •ํ•ด๋ณด๊ณ  ์ง„ํ–‰ํ•ด๋ณด๋Š” ์™„์ „ํƒ์ƒ‰ ๋ฐฉ๋ฒ•์„ ์ด์šฉํ•˜๋ฉด, ๋ฌธ์ œ๋ฅผ ๊น”๋”ํ•˜๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๋งŒ์•ฝ ์ตœ๋Œ“๊ฐ’์„ ๊ตฌํ•˜๋Š” ์™„์ „ํƒ์ƒ‰ ์ฝ”๋“œ๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ์‹œ๋‹ค.

๊ทธ๋Ÿฌ๋ฉด max_val ๊ฐ’์˜ ์ดˆ๊ธฐ๊ฐ’์€, ๋“ค์–ด์˜ฌ ์ˆ˜ ์žˆ๋Š” ๊ฐ’๋“ค๋ณด๋‹ค ํ›จ์”ฌ ์ž‘์€ ๊ฐ’์œผ๋กœ ์žก์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.
์ด ๊ฒฝ์šฐ์— max_val์— ์ฒซ ๋ฒˆ์งธ ์›์†Œ๋ฅผ ์ดˆ๊ธฐ๊ฐ’์œผ๋กœ ๋„ฃ์–ด์ค€ ๋’ค ์ง„ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ์ง€๋งŒ,
์™„์ „ํƒ์ƒ‰ ์œ ํ˜•์—์„œ๋Š” ์ฒซ ๋ฒˆ์งธ ์›์†Œ ๊ฐ’์„ ๊ตฌํ•˜๋Š” ๊ฒƒ ์ž์ฒด๊ฐ€ ๊ฐ„๋‹จํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์—, ์ดˆ๊ธฐ๊ฐ’์œผ๋กœ ์•„์ฃผ ์ž‘์€ ๊ฐ’์„ ์žก์•„ ์ฃผ๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

 

์ตœ๋Œ“๊ฐ’์„ ๊ตฌํ•ด์ฃผ๋Š” ๊ฒฝ์šฐ์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด #include <climits>๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ max_val์— INT_MIN ๊ฐ’์„,

์ตœ์†Ÿ๊ฐ’์„ ๊ตฌํ•ด์ฃผ๋Š” ๊ฒฝ์šฐ์—๋Š” min_val์— INT_MAX๋ฅผ ์ดˆ๊ธฐ๊ฐ’์œผ๋กœ ๋„ฃ์–ด์ฃผ๋Š” ๊ณผ์ •์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

 


์—ฐ์Šต๋ฌธ์ œ : ๋ชจ์ด์ž

n๊ฐœ์˜ ์ง‘์ด x = 1์—์„œ x = n๊นŒ์ง€ ์ˆœ์„œ๋Œ€๋กœ ๋†“์—ฌ์žˆ๊ณ , ๊ฐ๊ฐ  ๋ช…์˜ ์‚ฌ๋žŒ์ด ์‚ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋“ค์€ ํšŒ์˜๋ฅผ ์œ„ํ•ด n๊ฐœ์˜ ์ง‘ ์ค‘ ํ•œ ๊ณณ์— ์ „๋ถ€ ๋ชจ์ด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ ์ ˆํ•œ ์ง‘์„ ์„ ํƒํ•˜์—ฌ ๋ชจ๋“  ์‚ฌ๋žŒ๋“ค์˜ ์ด๋™ ๊ฑฐ๋ฆฌ์˜ ํ•ฉ์ด ์ตœ์†Œ๊ฐ€ ๋˜๋„๋ก ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•ด๋ณด์„ธ์š”.

์ž…๋ ฅ ํ˜•์‹

์ฒซ ๋ฒˆ์งธ ์ค„์— n์ด ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.
๋‘ ๋ฒˆ์งธ ์ค„์—๋Š” ๊ฐ ์ง€์ ์— ์‚ด๊ณ  ์žˆ๋Š” ์‚ฌ๋žŒ ์ˆ˜์— ํ•ด๋‹นํ•˜๋Š” n๊ฐœ์˜ ์ˆซ์ž๊ฐ€ ๊ณต๋ฐฑ์„ ์‚ฌ์ด์— ๋‘๊ณ  ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.

  • 1 ≤ n ≤ 100
  • 1 ≤  ≤ 100

์ถœ๋ ฅ ํ˜•์‹

๊ฐ€๋Šฅํ•œ ์ด๋™ ๊ฑฐ๋ฆฌ์˜ ํ•ฉ ์ค‘ ์ตœ์†Ÿ๊ฐ’์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.


๋‚˜์˜ ํ’€์ด

#include <iostream>
#include <climits>
using namespace std;
int main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    int n;
    int people[101] = {0,};
    cin>>n;
    for(int i=0; i<n; ++i){
        cin >> people[i];
    }
    int sum = 0;
    int answer = INT_MAX;
    for(int i=0; i<n; ++i){
        sum = 0;
        for(int j=0; j<n; ++j){
            if(j==i) continue;
            int d = abs(j-i);
            sum += people[j]*d;
        }
        if(answer > sum) answer = sum;
    }
    cout << answer;
    return 0;
}

 

์™„ํƒ์—์„œ min / max ์„ ์–ธ์‹œ์—๋Š” ์ •์ˆ˜๊ฐ’์˜ ์ตœ๋Œ€/์ตœ์†Œ๋ฅผ ๋„ฃ์–ด๋‘๋Š” ๊ฑธ ์žŠ์ง€๋ง์ž!

 

728x90
๋ฐ˜์‘ํ˜•