백준 24313번: 알고리즘 수업 - 점근적 표기 1 python

kimminjunnn·2025년 4월 6일

알고리즘

목록 보기
18/311

https://www.acmicpc.net/problem/24313

이 문제는 두 개의 선형 함수 𝑓(𝑁)과 𝑔(𝑁)이 주어졌을 때, 𝑓(𝑁)이 𝑔(𝑁)보다 빠르게 증가하지 않는지를 확인하는 문제입니다.

함수 f(N)=aN+b와 g(N)=cN이 주어집니다. 여기서 a,b,c는 각 함수의 계수입니다.

f(N)이 g(N)의 "빅 오"에 해당되는지 확인해야 합니다. 즉, f(N)이 g(N)보다 빠르게 증가하지 않는지 확인하는 것입니다.

즉 기울기를 판별해야 합니다.

풀이와 해답 :

a1, a0 = map(int, input().split())  # a1, a0 값을 입력받음 (선형 함수 f(N) = a1*N + a0의 계수)
c = int(input())  # c 값을 입력받음 (함수 g(N) = c*N의 계수)
n0 = int(input())  # n0 값을 입력받음 (특정 N 값)

# 조건 확인:
# 1. f(n0) <= c*n0: 이는 n0에서 f(N)의 값이 g(N)의 값보다 작거나 같은지 확인
# 2. a1 <= c: 이는 f(N)의 선형 계수가 g(N)의 계수보다 작거나 같은지 확인
if ((a1*n0 + a0 <= c*n0) and (a1 <= c)):
    print(1)
else:
    print(0)
profile
Frontend Engineers

0개의 댓글