Power Of Three

Yohan Kim·2021년 9월 28일
0

problem

주어진 인수가 3의 제곱수인지 확인하는 문제입니다.

https://leetcode.com/problems/power-of-three

solution

  • 반복문을 이용한 풀이
//problem no : 326
class Solution {
public:
    bool isPowerOfThree(int n) {
        if(n<1) return false;
        
        while(n%3 == 0){
            n/=3;
        }
        
        return n == 1;
    }
};
  • log를 활용한 풀이
class Solution {
public:
    bool isPowerOfThree(int n) {
        if(!n) return false;
        double a = log10(n)/log10(3);
        return floor(a) == a;    
    }
};

후기

처음에는 1에서부터 3을 곱해가면서 찾았는데, 오버플로우나 알고리즘 면에서 직관적이지 않아서 while문으로 푼 후, 다른 풀이를 보았는데, log를 활용한 풀이가 있어서 놀랐습니다.

profile
안녕하세요 반가워요!

0개의 댓글