본문 바로가기
Algorithm/Baekjoon

백준 24313번

by minhi 2025. 2. 12.

백준 24313번을 풀어보았다.

 

먼저 O(n) 정의를 만족하는 부등식은 n≥n0에 대해 a1*n+a0≤c*n이고 정리하면 a0≤(c-a1)*n이다.

 

따라서 자연스럽게 c와 a1의 대소를 고려해보게 되는데,

 

a1>c일 경우 a0이 무엇이든, n이 무한에 가까워지며 언젠가는 부등식을 성립하지 못하게 된다.

 

즉, a1>c일 경우 0을 출력하고 그 외의 경우 a1*n0+a0≤c*n0을 성립하면 1을, 아니면 0을 출력하면 된다.

let [[a1, a0], [c], [n0]] = require('fs').readFileSync('/dev/stdin').toString().split('\n').map((value) => value.split(' ').map(Number))

if (a1 > c) {
  console.log(0)
} else {
  if (a1 * n0 + a0 <= c * n0) console.log(1)
  else console.log(0)
}

 

위 문제를 풀며 기억해두면 좋을 것 두 가지는,

 

먼저 문제 상황을 이해하고 예외 상황을 파악하기 위해 식을 정리하고 계수를 살펴보는 습관이 필요하다.

 

그러나 조건문 작성 시에는 반드시 식을 정리한 결과를 작성하지 않아도 된다.

 

즉, iMath.sqrt(n)이나 (a1-c)*n0-a0≤0이 아니라 i*i≤n, a1*n0+a0≤c*n0와 같이 작성해도 된다.

 

💫 이 문제를 통해 배운 것

• 문제 상황을 이해하고 예외 상황을 파악하기 위해 식을 정리하고 계수를 살펴보는 습관이 필요하다.
• 그러나 조건문 작성 시에는 반드시 식을 정리한 결과를 작성하지 않아도 된다.

'Algorithm > Baekjoon' 카테고리의 다른 글

백준 2941번  (0) 2025.02.14
백준 24267번  (0) 2025.02.12
백준 24266번  (1) 2025.02.01
백준 1157번  (0) 2025.01.23
백준 11653번  (0) 2025.01.22