😎풀이

  1. 로그를 통해 3의 거듭제곱인지 판별
  2. 프로그래밍 언어 특성상 딱 맞아떨어지지 않을 수 있음
    2-1. 로그 값의 소수점을 제거한 값과 그렇지 않은 값의 차이가 10의 -10거듭제곱 보다 작다면 맞아 떨어지는 수로 판별
  3. 결과 반환
function isPowerOfThree(n: number): boolean {
    if(n <= 0) return false
    const logVal = Math.log(n) / Math.log(3)
    return Math.abs(Math.round(logVal) - logVal) < 1e-10
}
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글