🧑💻 언어 및 제출 결과
- 사용 언어:
TypeScript
- 통과 여부: ✅
🧠 풀이 설명
const isPowerOfThree = (n: number): boolean => {
if (n < 0) return false;
if (n === 1) return true;
let result = n;
for (let i = 1; i < Math.sqrt(n / 2); i++) {
result = result / 3;
if (result === 1) {
return true;
}
}
return false;
};
3의 거듭제곱인지 판별하는 문제입니다.
우선 음수일 경우는 3의 거듭제곱이 아니기 때문에 false를 반환하고, 1일 경우는 3의 0제곱이기 때문에 true를 반환합니다.
result는 n을 3으로 나눈 값을 저장하고, (n/2)의 제곱근까지 반복합니다.
반복하면서 result가 1이 되면 true를 반환하고, 1이 되지 않으면 false를 반환합니다.
📊 시간/공간 복잡도
✅ 어떠한 근거로 시간/공간 복잡도가 이렇게 나왔는지 설명해주세요.
⚡️ 풀이의 속도와 메모리 등을 캡쳐해서 올려주세요.
- 시간 복잡도:
O(√n)
- 공간 복잡도:
O(1)
'코딩테스트 > LeetCode' 카테고리의 다른 글
[LeetCode] Valid Parentheses (5) | 2025.08.09 |
---|---|
[LeetCode] Number of 1 Bits (1) | 2025.08.09 |
[LeetCode] Count Primes (3) | 2025.08.08 |
[LeetCode] First Bad Version (1) | 2025.07.24 |
[LeetCode] Merge Sorted Array (0) | 2025.07.23 |