πŸ₯‚ C (++)

[C++][λ°±μ€€|BOJ][μ‹œκ°„λ³΅μž‘λ„] 24313번 - μ•Œκ³ λ¦¬μ¦˜ μˆ˜μ—…(점근적 ν‘œκΈ° 1)

re.aom 2024. 2. 7. 02:19

문제

μ˜€λŠ˜λ„ μ„œμ€€μ΄λŠ” 점근적 ν‘œκΈ° μˆ˜μ—… 쑰ꡐλ₯Ό ν•˜κ³  μžˆλ‹€. μ•„λΉ κ°€ μˆ˜μ—…ν•œ λ‚΄μš©μ„ 학생듀이 잘 μ΄ν•΄ν–ˆλŠ”μ§€ 문제λ₯Ό ν†΅ν•΄μ„œ ν™•μΈν•΄λ³΄μž.

μ•Œκ³ λ¦¬μ¦˜μ˜ μ†Œμš” μ‹œκ°„μ„ λ‚˜νƒ€λ‚΄λŠ” O-ν‘œκΈ°λ²•(λΉ…-였)을 λ‹€μŒκ³Ό 같이 μ •μ˜ν•˜μž.

O(g(n)) = {f(n) | λͺ¨λ“  n β‰₯ n0에 λŒ€ν•˜μ—¬ f(n) ≀ c Γ— g(n)인 μ–‘μ˜ μƒμˆ˜ c와 n0κ°€ μ‘΄μž¬ν•œλ‹€}

이 μ •μ˜λŠ” μ‹€μ œ O-ν‘œκΈ°λ²•(https://en.wikipedia.org/wiki/Big_O_notation)κ³Ό λ‹€λ₯Ό 수 μžˆλ‹€.

ν•¨μˆ˜ f(n) = a1a0, μ–‘μ˜ μ •μˆ˜ cn0κ°€ μ£Όμ–΄μ§ˆ 경우 O(n) μ •μ˜λ₯Ό λ§Œμ‘±ν•˜λŠ”μ§€ μ•Œμ•„λ³΄μž.

μž…λ ₯

첫째 쀄에 ν•¨μˆ˜ f(n)을 λ‚˜νƒ€λ‚΄λŠ” μ •μˆ˜ a1a0κ°€ μ£Όμ–΄μ§„λ‹€. (0 β‰€ |ai| ≀ 100)

λ‹€μŒ μ€„에 μ–‘μ˜ μ •μˆ˜ cκ°€ μ£Όμ–΄μ§„λ‹€. (1 β‰€ c β‰€ 100)

λ‹€μŒ μ€„에 μ–‘μ˜ μ •μˆ˜ n0κ°€ μ£Όμ–΄μ§„λ‹€. (1 β‰€ n0 β‰€ 100)

좜λ ₯

f(n), cn0κ°€ O(n) μ •μ˜λ₯Ό λ§Œμ‘±ν•˜λ©΄ 1, μ•„λ‹ˆλ©΄ 0을 좜λ ₯ν•œλ‹€.

예제 μž…λ ₯ 1

7 7
8
1

예제 좜λ ₯ 1

0

f(n) = 7+ 7, g(n) = nc = 8, n= 1이닀. f(1) = 14, c Γ— g(1) = 8μ΄λ―€λ‘œ O(n) μ •μ˜λ₯Ό λ§Œμ‘±ν•˜μ§€ λͺ»ν•œλ‹€.

예제 μž…λ ₯ 2

7 7
8
10

예제 좜λ ₯ 2

1

f(n) = 7+ 7, g(n) = nc = 8, n= 10이닀. λͺ¨λ“  n β‰₯ 10에 λŒ€ν•˜μ—¬ 7+ 7 β‰€ 8μ΄λ―€λ‘œ O(n) μ •μ˜λ₯Ό λ§Œμ‘±ν•œλ‹€.

 

 

O(g(n)) = {f(n) | λͺ¨λ“  n ≥ n0에 λŒ€ν•˜μ—¬ f(n) ≤ c × g(n)인 μ–‘μ˜ μƒμˆ˜ c와 n0κ°€ μ‘΄μž¬ν•œλ‹€}

 

 


 

f(n) ≤ c*g(n) 을 λ§Œμ‘±ν•˜λ©΄ λœλ‹€.

 

ν•΄λ‹Ή 식을 μ •λ¦¬ν•˜λ©΄ λ‹€μŒκ³Ό 같은 λͺ¨μ–‘이 λœλ‹€.

 

 

 

 

μœ„ 뢀등식이 항상 참이 되기 μœ„ν•΄μ„œλŠ” a1-cκ°€ 0μ΄κ±°λ‚˜ μŒμˆ˜μ΄μ–΄μ•Ό ν•œλ‹€.

μ΄λŠ” a1이 c보닀 μž‘κ±°λ‚˜ κ°™μŒμœΌλ‘œ ν‘œμ‹œν•  수 μžˆλ‹€.

 

 

 

#include <iostream>

int main() {
    int a0, a1, c, n;
    std::cin >> a1 >> a0;
    std::cin >> c;
    std::cin >> n;
    
    if (a1 * n + a0 <= c * n && a1 <= c) {
        std::cout << 1;
    }
    else std::cout <<0;
}

 

λ²”μœ„ 쑰건을 μΆ”κ°€ν•˜μ§€ μ•Šκ³ , a1 * n + a0 <= c만 μž‘μ„±ν•  μ‹œ μ˜€λ‹΅μœΌλ‘œ μ²˜λ¦¬λœλ‹€.