Baekjoon/단계별로 풀어보기

[백준][11단계 시간 복잡도] 24313번 / 알고리즘 수업 - 점근적 표기 1 (파이썬/Python)

junslee 2025. 6. 2. 16:10

1. 문제 설명

2. 코드

a1,a0 = map(int,input().split())
c = int(input())
n0 = int(input())
is_valid = True
for n in range(n0, 101):
    if a1 * n + a0 > c * n:
        is_valid = False
        break
print(1 if is_valid else 0)

3. 풀이 과정

빅오 표기법의 알고리즘은 결국 f(n) <= c * g(n)을 만족하는지 확인하는 알고리즘 문제이다.

주어진 입력을 a1,a0, c, n0로 받는다.

판별 기준으로 is_valid변수를 True로 초기화한다.

n0이상의 모든 수를 비교하기 위해 범위는 n0부터 100까지 range(n0,101)로 한다.

range(n0,101)번 반복해서 a1 * n + a0 > c * n을 만족하게 되면 알고리즘이 틀린 것이므로 is_valid를 False로 초기화한다.

그리고 그 즉시 break로 반복문을 빠져나온다.

for문을 그대로 빠져나오게 되면 is_valid는 True이므로 1을 출력하고

False가 되면 0을 출력하도록 삼항 연산자를 작성한다.