326. Power of Three

JJ·2020년 12월 6일
class Solution {
    public boolean isPowerOfThree(int n) {
        return helper(n);
    }
    
    private boolean helper(int n) {
        if (n % 3 != 0) {
            return false;
        } else if (n == 3) {
            return true;
        } else {
            return helper(n / 3);
        }
    }
}

오랜만에 보는 (물론 내가 잘해서가 아니라 코딩 자체를 안한지 개오래돼서^^) stack overflow.... 별로 안반갑다^^
진짜 나 재귀 ㅈㄴ 못하는듯

class Solution {
    public boolean isPowerOfThree(int n) {
        if (n == 0) {
            return false; 
        }
        return helper(n);
    }
    
    private boolean helper(int n) {
        if (n == 1) { //3^0
            return true;
        }
        if (n % 3 != 0) { // not divisible by 3 anymore ==> not a power
            return false;
        } else { //divisible by 3, not 1
            return helper(n / 3);
        }
    }
}

ㅈㄴ 븅신같은거 하나 (n == 0)틀렸음 그거 하나 고침

Runtime: 10 ms, faster than 99.97% of Java online submissions for Power of Three.

Memory Usage: 38.3 MB, less than 98.09% of Java online submissions for Power of Three.

재귀 트라우마 있나봐여^^ 이 문제 보자마자 재귀로 풀어야징~ 이러고 풀었는데 진심 다 풀고 2초 생각해보니깐 log가 생각났읍니다...^^ 그래서 한번 더 해보았어요

public class Solution {
    public boolean isPowerOfThree(int n) {
        return (Math.log10(n) / Math.log10(3)) % 1 == 0;
    }
}

Runtime: 11 ms, faster than 63.01% of Java online submissions for Power of Three.

Memory Usage: 39 MB, less than 20.41% of Java online submissions for Power of Three.

런타임은 의외로 제게 더 빠르네욥

0개의 댓글