[백준] 24313: 알고리즘 수업 - 점근적 표기 1 - 파이썬[python]

다인·2024년 8월 29일

백준

목록 보기
47/112
post-thumbnail

문제 너무 쉬운데 왜 실버지? 생각했는데 역시나.. 100% 다 와 갈 때쯤 실패하더라... 왜인지 모르겠어서 구글링을 했는데, 너무 눈에 보이는 것만 생각하고 시간복잡도의 성질을 그냥.. 무시한 것이었다,,ㅎ

코드

a1, a0 = map(int,input().split())
c = int(input())
n0 = int(input())

print((a1*n0+a0 <= c*n0 and a1 <= c)*1)
  • *1을 한 이유는 0 혹은 1로 출력하기 위해서이다.
  • 파이썬에서는 *1을 해주면 False를 0으로, True를 1로 출력해준다고 한다!

풀이

  • 내가 놓친 부분은 a1 <= c.
  • 이 문제는 n0일 때 f(n) ≤ c × g(n)가 만족하는지를 구하는 게 아니라, 모든 n에 대해서 만족하는지 구하는 것이다.
  • 그래서 꼭 a1 <= c인지를 확인해줘야 한다!
  • 당장 n0일 때는 만족할지 몰라도, n이 커질수록 상수의 의미는 거의 없어지고 계수끼리만 영향을 주고받기 때문이다.

결과

자나깨나 문제 꼼꼼히 읽기. 문제 의도 파악하기.

0개의 댓글