πŸ₯‚ 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의 μžλ£Œν˜•μ„ μ£Όμ˜ν•˜λ©΄ λœλ‹€.