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을 출력하도록 삼항 연산자를 작성한다.
'Baekjoon > 단계별로 풀어보기' 카테고리의 다른 글
[백준][12단계 브루트 포스] 2231번 / 분해합 (파이썬/Python) (0) | 2025.06.17 |
---|---|
[백준][12단계 브루트 포스] 2798번 / 블랙잭 (파이썬/Python) (0) | 2025.06.17 |
[백준][11단계 시간 복잡도] 24267번 / 알고리즘 수업 - 알고리즘의 수행 시간 6 (파이썬/Python) (0) | 2025.06.02 |
[백준][11단계 시간 복잡도] 24266번 / 알고리즘 수업 - 알고리즘의 수행 시간 5 (파이썬/Python) (0) | 2025.05.29 |
[백준][11단계 시간 복잡도] 24265번 / 알고리즘 수업 - 알고리즘의 수행 시간 4 (파이썬/Python) (0) | 2025.05.28 |