์ˆ˜์„ ํ™”

[C++][๋ฐฑ์ค€|BOJ][์‹œ๊ฐ„๋ณต์žก๋„] 24265๋ฒˆ - ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ˆ˜์—…(์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ˆ˜ํ–‰ ์‹œ๊ฐ„ 4) ๋ณธ๋ฌธ

๐Ÿฅ‚ C (++)

[C++][๋ฐฑ์ค€|BOJ][์‹œ๊ฐ„๋ณต์žก๋„] 24265๋ฒˆ - ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ˆ˜์—…(์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ˆ˜ํ–‰ ์‹œ๊ฐ„ 4)

re.aom 2024. 2. 7. 01:28

๋ฌธ์ œ

์˜ค๋Š˜๋„ ์„œ์ค€์ด๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ˆ˜ํ–‰์‹œ๊ฐ„ ์ˆ˜์—… ์กฐ๊ต๋ฅผ ํ•˜๊ณ  ์žˆ๋‹ค. ์•„๋น ๊ฐ€ ์ˆ˜์—…ํ•œ ๋‚ด์šฉ์„ ํ•™์ƒ๋“ค์ด ์ž˜ ์ดํ•ดํ–ˆ๋Š”์ง€ ๋ฌธ์ œ๋ฅผ ํ†ตํ•ด์„œ ํ™•์ธํ•ด๋ณด์ž.

์ž…๋ ฅ์˜ ํฌ๊ธฐ n์ด ์ฃผ์–ด์ง€๋ฉด MenOfPassion ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ˆ˜ํ–‰ ์‹œ๊ฐ„์„ ์˜ˆ์ œ ์ถœ๋ ฅ๊ณผ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ์ถœ๋ ฅํ•ด๋ณด์ž.

MenOfPassion ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

MenOfPassion(A[], n) {
    sum <- 0;
    for i <- 1 to n - 1
        for j <- i + 1 to n
            sum <- sum + A[i] ร— A[j]; # ์ฝ”๋“œ1
    return sum;
}

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— ์ž…๋ ฅ์˜ ํฌ๊ธฐ n(1 โ‰ค n โ‰ค 500,000)์ด ์ฃผ์–ด์ง„๋‹ค.

์ถœ๋ ฅ

์ฒซ์งธ ์ค„์— ์ฝ”๋“œ1 ์˜ ์ˆ˜ํ–‰ ํšŸ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

๋‘˜์งธ ์ค„์— ์ฝ”๋“œ1์˜ ์ˆ˜ํ–‰ ํšŸ์ˆ˜๋ฅผ ๋‹คํ•ญ์‹์œผ๋กœ ๋‚˜ํƒ€๋‚ด์—ˆ์„ ๋•Œ, ์ตœ๊ณ ์ฐจํ•ญ์˜ ์ฐจ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ๋‹จ, ๋‹คํ•ญ์‹์œผ๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์—†๊ฑฐ๋‚˜ ์ตœ๊ณ ์ฐจํ•ญ์˜ ์ฐจ์ˆ˜๊ฐ€ 3๋ณด๋‹ค ํฌ๋ฉด 4๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

์˜ˆ์ œ ์ž…๋ ฅ 1

7

์˜ˆ์ œ ์ถœ๋ ฅ 1

21
2

์ฝ”๋“œ1 ์ด 21ํšŒ ์ˆ˜ํ–‰๋˜๊ณ  ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ˆ˜ํ–‰ ์‹œ๊ฐ„์ด n2์— ๋น„๋ก€ํ•œ๋‹ค.

 

 

์ฝ”๋“œ1 ์ด 21ํšŒ ์ˆ˜ํ–‰๋˜๊ณ  ์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ˆ˜ํ–‰ ์‹œ๊ฐ„์ด n2์— ๋น„๋ก€ํ•œ๋‹ค.

 

 


 

์‹œ๊ฐ„ ๋ณต์žก๋„๋Š” O(n^2) 2์ฐจํ˜•์ด๋‹ค.

 

7์„ ์ž…๋ ฅํ•  ๊ฒฝ์šฐ i์˜ ๋ฒ”์œ„๋Š” 1 ≤ i ≤ 6, j์˜ ๋ฒ”์œ„๋Š” i+1 ≤ j ≤ 7์ด๋ฉฐ,

i = 1์ผ ๋•Œ, j = 2, 3, 4, 5, 6, 7
i = 2์ผ ๋•Œ, j = 3, 4, 5, 6, 7
i = 3์ผ ๋•Œ, j = 4, 5, 6, 7
i = 4์ผ ๋•Œ, j = 5, 6, 7
i = 5์ผ ๋•Œ, j = 6, 7
i = 6์ผ ๋•Œ, j = 7

๋”ฐ๋ผ์„œ ์ฝ”๋“œ 1์€ 6+5+4+3+2+1์˜ ์ˆ˜ํ–‰ ํšŸ์ˆ˜๋ฅผ ๊ฐ€์ง„๋‹ค.

 

 

์ด๋Š” ์‹œ๊ทธ๋งˆ ๊ณต์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ํ’€ ์ˆ˜ ์žˆ๋‹ค.

 

 

#include <iostream>

int main() {
    long long n;
    std::cin >> n;
    std::cout << n * (n - 1) / 2 << std::endl << 2;
}

 

์ด ๋ฌธ์ œ๋„ n์˜ ์ž๋ฃŒํ˜•์„ ์ฃผ์˜ํ•˜๋ฉด ๋œ๋‹ค.

 

 

 

 

Comments