728x90
오늘의 문제
LeetCode - Reordered Power of 2 (출처 하단 표기)
문제
You are given an integer n. We reorder the digits in any order (including the original order) such that the leading digit is not zero.
Return true if and only if we can do this so that the resulting number is a power of two.
제한사항
- 1 <= n <= 10^9
입출력 예
n | return |
1 | true |
10 | false |
풀이
import java.util.*;
class Solution {
public boolean reorderedPowerOf2(int n) {
// 수를 정렬하여 2의 제곱일 때 true
// 숫자 정렬
char[] c = String.valueOf(n).toCharArray();
Arrays.sort(c);
String s = new String(c);
// 10의 9승으로 제한되어 있기 때문에 int형의 모든 2의 제곱수 확인 가능
for (int i = 0; i < 31; i++) {
int powOf2 = 1 << i;
char[] c2 = String.valueOf(powOf2).toCharArray();
Arrays.sort(c2);
String s2 = new String(c2);
if (s.equals(s2)) {
return true;
}
}
return false;
}
}
각 자릿수의 값을 정렬하여 2의 제곱이면 true를 반환하는 문제였다. 문제의 제한사항 중에 n이 10의 9제곱까지 나올 수 있지만, int의 범위에 속하기 때문에 int형의 모든 2의 거듭제곱 수를 구할 수가 있었다. 같은 방법으로 2의 거듭제곱 수들을 자릿수 값에 따라 정렬 후, n을 정렬한 문자열인 s과 같을 때 true를 return 하도록 작성하였다.
출처: LeetCode, https://leetcode.com/problems/reordered-power-of-2/
728x90
'코딩테스트 연습 > 99클럽' 카테고리의 다른 글
[99클럽] 99클럽 코테 스터디 35일차 TIL - 큐 (Queue) (0) | 2024.06.23 |
---|---|
[99클럽] 99클럽 코테 스터디 34일차 TIL - 큐 (Queue) (0) | 2024.06.22 |
[99클럽] 99클럽 코테 스터디 32일차 TIL - 정렬 (0) | 2024.06.20 |
[99클럽] 99클럽 코테 스터디 31일차 TIL - 문자열 (0) | 2024.06.19 |
[99클럽] 99클럽 코테 스터디 30일차 TIL - 문자열 (0) | 2024.06.18 |