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.
런타임은 의외로 제게 더 빠르네욥